farce 0.4.1-java → 0.6.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 (125) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +98 -2
  3. data/README.md +3 -1
  4. data/docs/benchmarks.md +37 -21
  5. data/docs/compatibility.md +13 -0
  6. data/docs/data-structures.md +37 -0
  7. data/docs/integrations.md +1 -0
  8. data/docs/introduction.md +19 -0
  9. data/docs/modes.md +2 -0
  10. data/docs/scheduling.md +35 -3
  11. data/docs/scopes.md +3 -1
  12. data/docs/shims.md +53 -0
  13. data/docs/utilities.md +32 -0
  14. data/docs/variants.md +9 -0
  15. data/lib/farce/abstract/atom.rb +5 -1
  16. data/lib/farce/abstract/concurrent_map.rb +122 -0
  17. data/lib/farce/abstract/counter.rb +36 -1
  18. data/lib/farce/abstract/executor.rb +30 -7
  19. data/lib/farce/abstract/flag.rb +12 -0
  20. data/lib/farce/abstract/molecule.rb +14 -14
  21. data/lib/farce/abstract/pool.rb +158 -47
  22. data/lib/farce/abstract/priority_queue.rb +1 -1
  23. data/lib/farce/abstract/publisher.rb +189 -0
  24. data/lib/farce/abstract/queue.rb +29 -3
  25. data/lib/farce/abstract/scheduler.rb +41 -14
  26. data/lib/farce/abstract/timer_queue.rb +3 -3
  27. data/lib/farce/abstract/vector.rb +3 -1
  28. data/lib/farce/atom.rb +15 -2
  29. data/lib/farce/clock.rb +20 -7
  30. data/lib/farce/concurrent/count_down_latch.rb +37 -0
  31. data/lib/farce/concurrent/cyclic_barrier.rb +109 -0
  32. data/lib/farce/concurrent/event.rb +60 -0
  33. data/lib/farce/concurrent/fiber_local_var.rb +31 -0
  34. data/lib/farce/concurrent/local_var.rb +65 -0
  35. data/lib/farce/concurrent/thread_local_var.rb +28 -0
  36. data/lib/farce/concurrent/tuple.rb +74 -0
  37. data/lib/farce/concurrent.rb +50 -0
  38. data/lib/farce/config.rb +112 -2
  39. data/lib/farce/counter.rb +5 -15
  40. data/lib/farce/deduper.rb +12 -4
  41. data/lib/farce/engine/jruby/fiber_scheduler.jar +0 -0
  42. data/lib/farce/engine/jruby/map.rb +8 -6
  43. data/lib/farce/engine/jruby/signal.rb +2 -2
  44. data/lib/farce/engine/jvm/counter.rb +0 -2
  45. data/lib/farce/engine/jvm/farce.jar +0 -0
  46. data/lib/farce/engine/jvm/priority_queue.rb +14 -4
  47. data/lib/farce/engine/ruby/shared/parallel_scheduler.rb +9 -1
  48. data/lib/farce/engine/ruby/shared/ractor_selector.rb +1 -4
  49. data/lib/farce/engine/ruby/shared/weak_cache_mirror.rb +56 -0
  50. data/lib/farce/engine/ruby/shared/weak_map.rb +9 -12
  51. data/lib/farce/engine/ruby.rb +5 -1
  52. data/lib/farce/engine/shared/exchanger.rb +2 -2
  53. data/lib/farce/engine/shared/queue.rb +43 -5
  54. data/lib/farce/engine/shared/ractor_selector.rb +1 -1
  55. data/lib/farce/engine/shared/strict_map.rb +5 -0
  56. data/lib/farce/engine/shared/trie/ignore_case.rb +136 -0
  57. data/lib/farce/engine/shared/trie.rb +14 -1
  58. data/lib/farce/engine/shared/trie_builder.rb +19 -8
  59. data/lib/farce/engine/shared/unshared_atom.rb +1 -1
  60. data/lib/farce/engine/shared/unshared_vector.rb +11 -8
  61. data/lib/farce/engine/shared/unshared_weak_map.rb +8 -6
  62. data/lib/farce/engine/shared/vector.rb +2 -0
  63. data/lib/farce/engine/shared/weak_atom/base.rb +5 -10
  64. data/lib/farce/engine/shared/weak_map/cell.rb +1 -1
  65. data/lib/farce/engine/shared.rb +2 -0
  66. data/lib/farce/engine/truffleruby/map.rb +8 -6
  67. data/lib/farce/engine/truffleruby/native/counter.rb +0 -2
  68. data/lib/farce/engine/truffleruby/native/priority_queue.rb +18 -4
  69. data/lib/farce/engine/truffleruby/signal.rb +1 -1
  70. data/lib/farce/engine/truffleruby.rb +9 -0
  71. data/lib/farce/extension.rb +5 -3
  72. data/lib/farce/integrations/concurrent.rb +16 -3
  73. data/lib/farce/integrations/sorted_set.rb +1 -0
  74. data/lib/farce/internal/blocking_priority_queue.rb +4 -9
  75. data/lib/farce/internal/fake_ractor.rb +1 -1
  76. data/lib/farce/internal/flag_waiting.rb +1 -1
  77. data/lib/farce/internal/freeze.rb +1 -5
  78. data/lib/farce/internal/lease_initialization.rb +1 -1
  79. data/lib/farce/internal/lease_pool_state.rb +1 -1
  80. data/lib/farce/internal/lease_state.rb +2 -2
  81. data/lib/farce/internal/local_executor_methods.rb +3 -3
  82. data/lib/farce/internal/map_value_modes.rb +17 -9
  83. data/lib/farce/internal/pool_settings.rb +9 -0
  84. data/lib/farce/internal/pool_worker.rb +34 -21
  85. data/lib/farce/internal/reservation_waiting.rb +1 -1
  86. data/lib/farce/internal/scheduler_lifecycle.rb +2 -2
  87. data/lib/farce/internal/weak_map_value_modes.rb +5 -0
  88. data/lib/farce/internal.rb +19 -8
  89. data/lib/farce/lazy.rb +3 -0
  90. data/lib/farce/lazy_ref.rb +3 -0
  91. data/lib/farce/local/counter.rb +4 -10
  92. data/lib/farce/local/lease.rb +2 -9
  93. data/lib/farce/local/lease_map.rb +2 -9
  94. data/lib/farce/local/pool.rb +38 -5
  95. data/lib/farce/local/publisher.rb +30 -0
  96. data/lib/farce/local/scheduler.rb +18 -5
  97. data/lib/farce/local/vector.rb +3 -2
  98. data/lib/farce/map.rb +8 -1
  99. data/lib/farce/memoize.rb +319 -0
  100. data/lib/farce/pool.rb +5 -0
  101. data/lib/farce/priority_queue.rb +1 -1
  102. data/lib/farce/publisher.rb +57 -0
  103. data/lib/farce/shareable.rb +3 -0
  104. data/lib/farce/signal.rb +1 -1
  105. data/lib/farce/strict/publisher.rb +31 -0
  106. data/lib/farce/strict/vector.rb +3 -2
  107. data/lib/farce/strict/weak_cache.rb +199 -0
  108. data/lib/farce/subscription/definitions.rb +27 -0
  109. data/lib/farce/subscription.rb +121 -0
  110. data/lib/farce/transaction/map.rb +35 -1
  111. data/lib/farce/unshared/pool.rb +1 -1
  112. data/lib/farce/unshared/publisher.rb +25 -0
  113. data/lib/farce/unshared/scheduler.rb +3 -3
  114. data/lib/farce/unshared/vector.rb +3 -2
  115. data/lib/farce/vector.rb +20 -16
  116. data/lib/farce/version.rb +1 -1
  117. data/lib/farce/walker/definitions.rb +31 -2
  118. data/lib/farce/walker/modification.rb +28 -14
  119. data/lib/farce/walker.rb +9 -1
  120. data/lib/farce/weak_atom.rb +5 -2
  121. data/lib/farce/weak_key_map.rb +1 -1
  122. data/lib/farce/weak_map.rb +1 -1
  123. data/lib/farce/weak_value_map.rb +1 -1
  124. data/lib/farce.rb +3 -1
  125. metadata +22 -2
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.4.1
4
+ version: 0.6.0
5
5
  platform: java
6
6
  authors:
7
7
  - Konstantin Haase
8
8
  bindir: bin
9
9
  cert_chain: []
10
- date: 2026-10-18 00:00:00.000000000 Z
10
+ date: 2026-11-04 00:00:00.000000000 Z
11
11
  dependencies: []
12
12
  email:
13
13
  - konstantin.mailinglists@googlemail.com
@@ -64,6 +64,7 @@ files:
64
64
  - lib/farce/abstract/pool.rb
65
65
  - lib/farce/abstract/port.rb
66
66
  - lib/farce/abstract/priority_queue.rb
67
+ - lib/farce/abstract/publisher.rb
67
68
  - lib/farce/abstract/queue.rb
68
69
  - lib/farce/abstract/scheduler.rb
69
70
  - lib/farce/abstract/set.rb
@@ -81,6 +82,14 @@ files:
81
82
  - lib/farce/backports.rb
82
83
  - lib/farce/class_mirror.rb
83
84
  - lib/farce/clock.rb
85
+ - lib/farce/concurrent.rb
86
+ - lib/farce/concurrent/count_down_latch.rb
87
+ - lib/farce/concurrent/cyclic_barrier.rb
88
+ - lib/farce/concurrent/event.rb
89
+ - lib/farce/concurrent/fiber_local_var.rb
90
+ - lib/farce/concurrent/local_var.rb
91
+ - lib/farce/concurrent/thread_local_var.rb
92
+ - lib/farce/concurrent/tuple.rb
84
93
  - lib/farce/config.rb
85
94
  - lib/farce/counter.rb
86
95
  - lib/farce/deduper.rb
@@ -135,6 +144,7 @@ files:
135
144
  - lib/farce/engine/ruby/shared/vault.rb
136
145
  - lib/farce/engine/ruby/shared/vault_weak_map.rb
137
146
  - lib/farce/engine/ruby/shared/weak_atom.rb
147
+ - lib/farce/engine/ruby/shared/weak_cache_mirror.rb
138
148
  - lib/farce/engine/ruby/shared/weak_map.rb
139
149
  - lib/farce/engine/shared.rb
140
150
  - lib/farce/engine/shared/atom.rb
@@ -159,6 +169,7 @@ files:
159
169
  - lib/farce/engine/shared/strict_tree_map.rb
160
170
  - lib/farce/engine/shared/transaction_map_backend.rb
161
171
  - lib/farce/engine/shared/trie.rb
172
+ - lib/farce/engine/shared/trie/ignore_case.rb
162
173
  - lib/farce/engine/shared/trie_builder.rb
163
174
  - lib/farce/engine/shared/unshareable.rb
164
175
  - lib/farce/engine/shared/unshared_atom.rb
@@ -248,6 +259,7 @@ files:
248
259
  - lib/farce/internal/mutable_ordered_key_lock_map.rb
249
260
  - lib/farce/internal/noncopyable.rb
250
261
  - lib/farce/internal/ordered_key_lock_map.rb
262
+ - lib/farce/internal/pool_settings.rb
251
263
  - lib/farce/internal/pool_supervisor.rb
252
264
  - lib/farce/internal/pool_worker.rb
253
265
  - lib/farce/internal/portable_transaction.rb
@@ -299,6 +311,7 @@ files:
299
311
  - lib/farce/local/molecule.rb
300
312
  - lib/farce/local/pool.rb
301
313
  - lib/farce/local/priority_queue.rb
314
+ - lib/farce/local/publisher.rb
302
315
  - lib/farce/local/queue.rb
303
316
  - lib/farce/local/scheduler.rb
304
317
  - lib/farce/local/scoped.rb
@@ -315,6 +328,7 @@ files:
315
328
  - lib/farce/lock.rb
316
329
  - lib/farce/lru_map.rb
317
330
  - lib/farce/map.rb
331
+ - lib/farce/memoize.rb
318
332
  - lib/farce/mode_manager.rb
319
333
  - lib/farce/mode_manager/smart_rule.rb
320
334
  - lib/farce/molecule.rb
@@ -327,6 +341,7 @@ files:
327
341
  - lib/farce/proxy/register.rb
328
342
  - lib/farce/proxy/supervisor.rb
329
343
  - lib/farce/proxy/wrapper.rb
344
+ - lib/farce/publisher.rb
330
345
  - lib/farce/queue.rb
331
346
  - lib/farce/ractor.rb
332
347
  - lib/farce/read_write_lock.rb
@@ -354,6 +369,7 @@ files:
354
369
  - lib/farce/strict/molecule.rb
355
370
  - lib/farce/strict/port.rb
356
371
  - lib/farce/strict/priority_queue.rb
372
+ - lib/farce/strict/publisher.rb
357
373
  - lib/farce/strict/queue.rb
358
374
  - lib/farce/strict/set.rb
359
375
  - lib/farce/strict/sorted_set.rb
@@ -361,10 +377,13 @@ files:
361
377
  - lib/farce/strict/tree_map.rb
362
378
  - lib/farce/strict/vector.rb
363
379
  - lib/farce/strict/weak_atom.rb
380
+ - lib/farce/strict/weak_cache.rb
364
381
  - lib/farce/strict/weak_key_map.rb
365
382
  - lib/farce/strict/weak_map.rb
366
383
  - lib/farce/strict/weak_set.rb
367
384
  - lib/farce/strict/weak_value_map.rb
385
+ - lib/farce/subscription.rb
386
+ - lib/farce/subscription/definitions.rb
368
387
  - lib/farce/system.rb
369
388
  - lib/farce/task.rb
370
389
  - lib/farce/thread_executor.rb
@@ -402,6 +421,7 @@ files:
402
421
  - lib/farce/unshared/molecule.rb
403
422
  - lib/farce/unshared/pool.rb
404
423
  - lib/farce/unshared/priority_queue.rb
424
+ - lib/farce/unshared/publisher.rb
405
425
  - lib/farce/unshared/queue.rb
406
426
  - lib/farce/unshared/scheduler.rb
407
427
  - lib/farce/unshared/set.rb