effect 3.7.2 → 3.8.0

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 (246) hide show
  1. package/Mailbox/package.json +6 -0
  2. package/dist/cjs/Deferred.js.map +1 -1
  3. package/dist/cjs/Duration.js +99 -35
  4. package/dist/cjs/Duration.js.map +1 -1
  5. package/dist/cjs/Effect.js +30 -3
  6. package/dist/cjs/Effect.js.map +1 -1
  7. package/dist/cjs/Fiber.js.map +1 -1
  8. package/dist/cjs/FiberRef.js.map +1 -1
  9. package/dist/cjs/Iterable.js +0 -1
  10. package/dist/cjs/Iterable.js.map +1 -1
  11. package/dist/cjs/List.js +0 -2
  12. package/dist/cjs/List.js.map +1 -1
  13. package/dist/cjs/Logger.js +29 -1
  14. package/dist/cjs/Logger.js.map +1 -1
  15. package/dist/cjs/Mailbox.js +95 -0
  16. package/dist/cjs/Mailbox.js.map +1 -0
  17. package/dist/cjs/Micro.js +1 -0
  18. package/dist/cjs/Micro.js.map +1 -1
  19. package/dist/cjs/MutableHashMap.js +13 -1
  20. package/dist/cjs/MutableHashMap.js.map +1 -1
  21. package/dist/cjs/Number.js +20 -1
  22. package/dist/cjs/Number.js.map +1 -1
  23. package/dist/cjs/Queue.js.map +1 -1
  24. package/dist/cjs/RcMap.js +6 -1
  25. package/dist/cjs/RcMap.js.map +1 -1
  26. package/dist/cjs/RcRef.js.map +1 -1
  27. package/dist/cjs/Ref.js.map +1 -1
  28. package/dist/cjs/Stream.js +11 -2
  29. package/dist/cjs/Stream.js.map +1 -1
  30. package/dist/cjs/SubscriptionRef.js.map +1 -1
  31. package/dist/cjs/SynchronizedRef.js.map +1 -1
  32. package/dist/cjs/TestClock.js +8 -2
  33. package/dist/cjs/TestClock.js.map +1 -1
  34. package/dist/cjs/index.js +4 -2
  35. package/dist/cjs/index.js.map +1 -1
  36. package/dist/cjs/internal/core.js +32 -25
  37. package/dist/cjs/internal/core.js.map +1 -1
  38. package/dist/cjs/internal/defaultServices/console.js.map +1 -1
  39. package/dist/cjs/internal/defaultServices.js +8 -5
  40. package/dist/cjs/internal/defaultServices.js.map +1 -1
  41. package/dist/cjs/internal/effect/circular.js +81 -8
  42. package/dist/cjs/internal/effect/circular.js.map +1 -1
  43. package/dist/cjs/internal/fiber.js +51 -26
  44. package/dist/cjs/internal/fiber.js.map +1 -1
  45. package/dist/cjs/internal/fiberRefs.js.map +1 -1
  46. package/dist/cjs/internal/fiberRuntime.js +126 -97
  47. package/dist/cjs/internal/fiberRuntime.js.map +1 -1
  48. package/dist/cjs/internal/groupBy.js +6 -1
  49. package/dist/cjs/internal/groupBy.js.map +1 -1
  50. package/dist/cjs/internal/hashMap/node.js +0 -1
  51. package/dist/cjs/internal/hashMap/node.js.map +1 -1
  52. package/dist/cjs/internal/hashMap.js +0 -1
  53. package/dist/cjs/internal/hashMap.js.map +1 -1
  54. package/dist/cjs/internal/layer.js +3 -3
  55. package/dist/cjs/internal/layer.js.map +1 -1
  56. package/dist/cjs/internal/logger.js +4 -1
  57. package/dist/cjs/internal/logger.js.map +1 -1
  58. package/dist/cjs/internal/mailbox.js +408 -0
  59. package/dist/cjs/internal/mailbox.js.map +1 -0
  60. package/dist/cjs/internal/managedRuntime.js +1 -1
  61. package/dist/cjs/internal/managedRuntime.js.map +1 -1
  62. package/dist/cjs/internal/pubsub.js +6 -1
  63. package/dist/cjs/internal/pubsub.js.map +1 -1
  64. package/dist/cjs/internal/queue.js +6 -1
  65. package/dist/cjs/internal/queue.js.map +1 -1
  66. package/dist/cjs/internal/rcMap.js +7 -1
  67. package/dist/cjs/internal/rcMap.js.map +1 -1
  68. package/dist/cjs/internal/rcRef.js +10 -6
  69. package/dist/cjs/internal/rcRef.js.map +1 -1
  70. package/dist/cjs/internal/ref.js +7 -7
  71. package/dist/cjs/internal/ref.js.map +1 -1
  72. package/dist/cjs/internal/runtime.js +1 -1
  73. package/dist/cjs/internal/runtime.js.map +1 -1
  74. package/dist/cjs/internal/stream.js +7 -2
  75. package/dist/cjs/internal/stream.js.map +1 -1
  76. package/dist/cjs/internal/subscriptionRef.js +7 -8
  77. package/dist/cjs/internal/subscriptionRef.js.map +1 -1
  78. package/dist/cjs/internal/version.js +1 -1
  79. package/dist/dts/Deferred.d.ts +21 -2
  80. package/dist/dts/Deferred.d.ts.map +1 -1
  81. package/dist/dts/Duration.d.ts +38 -1
  82. package/dist/dts/Duration.d.ts.map +1 -1
  83. package/dist/dts/Effect.d.ts +45 -0
  84. package/dist/dts/Effect.d.ts.map +1 -1
  85. package/dist/dts/Fiber.d.ts +69 -2
  86. package/dist/dts/Fiber.d.ts.map +1 -1
  87. package/dist/dts/FiberRef.d.ts +21 -2
  88. package/dist/dts/FiberRef.d.ts.map +1 -1
  89. package/dist/dts/List.d.ts.map +1 -1
  90. package/dist/dts/Logger.d.ts +28 -0
  91. package/dist/dts/Logger.d.ts.map +1 -1
  92. package/dist/dts/Mailbox.d.ts +220 -0
  93. package/dist/dts/Mailbox.d.ts.map +1 -0
  94. package/dist/dts/Micro.d.ts.map +1 -1
  95. package/dist/dts/MutableHashMap.d.ts +5 -0
  96. package/dist/dts/MutableHashMap.d.ts.map +1 -1
  97. package/dist/dts/Number.d.ts +19 -0
  98. package/dist/dts/Number.d.ts.map +1 -1
  99. package/dist/dts/Queue.d.ts +40 -1
  100. package/dist/dts/Queue.d.ts.map +1 -1
  101. package/dist/dts/RcMap.d.ts +5 -0
  102. package/dist/dts/RcMap.d.ts.map +1 -1
  103. package/dist/dts/RcRef.d.ts +22 -2
  104. package/dist/dts/RcRef.d.ts.map +1 -1
  105. package/dist/dts/Ref.d.ts +22 -2
  106. package/dist/dts/Ref.d.ts.map +1 -1
  107. package/dist/dts/ScheduleDecision.d.ts.map +1 -1
  108. package/dist/dts/Stream.d.ts +30 -0
  109. package/dist/dts/Stream.d.ts.map +1 -1
  110. package/dist/dts/SubscriptionRef.d.ts +20 -0
  111. package/dist/dts/SubscriptionRef.d.ts.map +1 -1
  112. package/dist/dts/SynchronizedRef.d.ts +20 -0
  113. package/dist/dts/SynchronizedRef.d.ts.map +1 -1
  114. package/dist/dts/TestClock.d.ts.map +1 -1
  115. package/dist/dts/index.d.ts +5 -0
  116. package/dist/dts/index.d.ts.map +1 -1
  117. package/dist/dts/internal/core.d.ts.map +1 -1
  118. package/dist/dts/internal/fiber.d.ts.map +1 -1
  119. package/dist/dts/internal/fiberRuntime.d.ts.map +1 -1
  120. package/dist/dts/internal/logger.d.ts.map +1 -1
  121. package/dist/dts/internal/mailbox.d.ts +2 -0
  122. package/dist/dts/internal/mailbox.d.ts.map +1 -0
  123. package/dist/dts/internal/stream.d.ts +22 -0
  124. package/dist/dts/internal/stream.d.ts.map +1 -1
  125. package/dist/esm/Deferred.js.map +1 -1
  126. package/dist/esm/Duration.js +92 -33
  127. package/dist/esm/Duration.js.map +1 -1
  128. package/dist/esm/Effect.js +27 -0
  129. package/dist/esm/Effect.js.map +1 -1
  130. package/dist/esm/Fiber.js.map +1 -1
  131. package/dist/esm/FiberRef.js.map +1 -1
  132. package/dist/esm/Iterable.js +0 -1
  133. package/dist/esm/Iterable.js.map +1 -1
  134. package/dist/esm/List.js +0 -2
  135. package/dist/esm/List.js.map +1 -1
  136. package/dist/esm/Logger.js +28 -0
  137. package/dist/esm/Logger.js.map +1 -1
  138. package/dist/esm/Mailbox.js +85 -0
  139. package/dist/esm/Mailbox.js.map +1 -0
  140. package/dist/esm/Micro.js +1 -0
  141. package/dist/esm/Micro.js.map +1 -1
  142. package/dist/esm/MutableHashMap.js +11 -0
  143. package/dist/esm/MutableHashMap.js.map +1 -1
  144. package/dist/esm/Number.js +19 -0
  145. package/dist/esm/Number.js.map +1 -1
  146. package/dist/esm/Queue.js.map +1 -1
  147. package/dist/esm/RcMap.js +5 -0
  148. package/dist/esm/RcMap.js.map +1 -1
  149. package/dist/esm/RcRef.js.map +1 -1
  150. package/dist/esm/Ref.js.map +1 -1
  151. package/dist/esm/Stream.js +9 -0
  152. package/dist/esm/Stream.js.map +1 -1
  153. package/dist/esm/SubscriptionRef.js.map +1 -1
  154. package/dist/esm/SynchronizedRef.js.map +1 -1
  155. package/dist/esm/TestClock.js +8 -2
  156. package/dist/esm/TestClock.js.map +1 -1
  157. package/dist/esm/index.js +5 -0
  158. package/dist/esm/index.js.map +1 -1
  159. package/dist/esm/internal/core.js +33 -26
  160. package/dist/esm/internal/core.js.map +1 -1
  161. package/dist/esm/internal/defaultServices/console.js.map +1 -1
  162. package/dist/esm/internal/defaultServices.js +6 -4
  163. package/dist/esm/internal/defaultServices.js.map +1 -1
  164. package/dist/esm/internal/effect/circular.js +77 -6
  165. package/dist/esm/internal/effect/circular.js.map +1 -1
  166. package/dist/esm/internal/fiber.js +51 -26
  167. package/dist/esm/internal/fiber.js.map +1 -1
  168. package/dist/esm/internal/fiberRefs.js.map +1 -1
  169. package/dist/esm/internal/fiberRuntime.js +124 -96
  170. package/dist/esm/internal/fiberRuntime.js.map +1 -1
  171. package/dist/esm/internal/groupBy.js +6 -1
  172. package/dist/esm/internal/groupBy.js.map +1 -1
  173. package/dist/esm/internal/hashMap/node.js +0 -1
  174. package/dist/esm/internal/hashMap/node.js.map +1 -1
  175. package/dist/esm/internal/hashMap.js +0 -1
  176. package/dist/esm/internal/hashMap.js.map +1 -1
  177. package/dist/esm/internal/layer.js +3 -3
  178. package/dist/esm/internal/layer.js.map +1 -1
  179. package/dist/esm/internal/logger.js +3 -0
  180. package/dist/esm/internal/logger.js.map +1 -1
  181. package/dist/esm/internal/mailbox.js +395 -0
  182. package/dist/esm/internal/mailbox.js.map +1 -0
  183. package/dist/esm/internal/managedRuntime.js +1 -1
  184. package/dist/esm/internal/managedRuntime.js.map +1 -1
  185. package/dist/esm/internal/pubsub.js +6 -1
  186. package/dist/esm/internal/pubsub.js.map +1 -1
  187. package/dist/esm/internal/queue.js +6 -1
  188. package/dist/esm/internal/queue.js.map +1 -1
  189. package/dist/esm/internal/rcMap.js +5 -0
  190. package/dist/esm/internal/rcMap.js.map +1 -1
  191. package/dist/esm/internal/rcRef.js +10 -6
  192. package/dist/esm/internal/rcRef.js.map +1 -1
  193. package/dist/esm/internal/ref.js +7 -7
  194. package/dist/esm/internal/ref.js.map +1 -1
  195. package/dist/esm/internal/runtime.js +1 -1
  196. package/dist/esm/internal/runtime.js.map +1 -1
  197. package/dist/esm/internal/stream.js +5 -0
  198. package/dist/esm/internal/stream.js.map +1 -1
  199. package/dist/esm/internal/subscriptionRef.js +7 -8
  200. package/dist/esm/internal/subscriptionRef.js.map +1 -1
  201. package/dist/esm/internal/version.js +1 -1
  202. package/package.json +9 -1
  203. package/src/Deferred.ts +21 -2
  204. package/src/Duration.ts +112 -35
  205. package/src/Effect.ts +52 -0
  206. package/src/Fiber.ts +78 -2
  207. package/src/FiberRef.ts +21 -2
  208. package/src/Iterable.ts +1 -1
  209. package/src/List.ts +0 -2
  210. package/src/Logger.ts +30 -0
  211. package/src/Mailbox.ts +236 -0
  212. package/src/Micro.ts +1 -0
  213. package/src/MutableHashMap.ts +12 -0
  214. package/src/Number.ts +23 -0
  215. package/src/Queue.ts +42 -1
  216. package/src/RcMap.ts +6 -0
  217. package/src/RcRef.ts +24 -2
  218. package/src/Ref.ts +22 -2
  219. package/src/Stream.ts +36 -0
  220. package/src/SubscriptionRef.ts +22 -0
  221. package/src/SynchronizedRef.ts +20 -0
  222. package/src/TestClock.ts +10 -2
  223. package/src/index.ts +6 -0
  224. package/src/internal/core.ts +31 -28
  225. package/src/internal/defaultServices/console.ts +1 -0
  226. package/src/internal/defaultServices.ts +9 -10
  227. package/src/internal/effect/circular.ts +83 -6
  228. package/src/internal/fiber.ts +56 -29
  229. package/src/internal/fiberRefs.ts +1 -2
  230. package/src/internal/fiberRuntime.ts +134 -103
  231. package/src/internal/groupBy.ts +7 -1
  232. package/src/internal/hashMap/node.ts +1 -1
  233. package/src/internal/hashMap.ts +1 -1
  234. package/src/internal/layer.ts +3 -3
  235. package/src/internal/logger.ts +4 -0
  236. package/src/internal/mailbox.ts +461 -0
  237. package/src/internal/managedRuntime.ts +1 -1
  238. package/src/internal/pubsub.ts +9 -2
  239. package/src/internal/queue.ts +7 -1
  240. package/src/internal/rcMap.ts +8 -0
  241. package/src/internal/rcRef.ts +10 -6
  242. package/src/internal/ref.ts +7 -7
  243. package/src/internal/runtime.ts +1 -1
  244. package/src/internal/stream.ts +53 -0
  245. package/src/internal/subscriptionRef.ts +7 -8
  246. package/src/internal/version.ts +1 -1
@@ -6,10 +6,11 @@ import * as Chunk from "../Chunk.js"
6
6
  import type * as Clock from "../Clock.js"
7
7
  import type { ConfigProvider } from "../ConfigProvider.js"
8
8
  import * as Context from "../Context.js"
9
+ import type { DefaultServices } from "../DefaultServices.js"
9
10
  import * as Deferred from "../Deferred.js"
10
11
  import type * as Duration from "../Duration.js"
11
12
  import type * as Effect from "../Effect.js"
12
- import { EffectTypeId } from "../Effectable.js"
13
+ import * as Effectable from "../Effectable.js"
13
14
  import type * as Either from "../Either.js"
14
15
  import * as ExecutionStrategy from "../ExecutionStrategy.js"
15
16
  import type * as Exit from "../Exit.js"
@@ -169,8 +170,8 @@ const contOpSuccess = {
169
170
  cont: core.RevertFlags,
170
171
  value: unknown
171
172
  ) => {
172
- self.patchRuntimeFlags(self._runtimeFlags, cont.patch)
173
- if (_runtimeFlags.interruptible(self._runtimeFlags) && self.isInterrupted()) {
173
+ self.patchRuntimeFlags(self.currentRuntimeFlags, cont.patch)
174
+ if (_runtimeFlags.interruptible(self.currentRuntimeFlags) && self.isInterrupted()) {
174
175
  return core.exitFailCause(self.getInterruptedCause())
175
176
  } else {
176
177
  return core.exitSucceed(value)
@@ -268,18 +269,13 @@ export interface Snapshot {
268
269
  }
269
270
 
270
271
  /** @internal */
271
- export class FiberRuntime<in out A, in out E = never> implements Fiber.RuntimeFiber<A, E> {
272
+ export class FiberRuntime<in out A, in out E = never> extends Effectable.Class<A, E>
273
+ implements Fiber.RuntimeFiber<A, E>
274
+ {
272
275
  readonly [internalFiber.FiberTypeId] = internalFiber.fiberVariance
273
276
  readonly [internalFiber.RuntimeFiberTypeId] = runtimeFiberVariance
274
-
275
- pipe() {
276
- return pipeArguments(this, arguments)
277
- }
278
-
279
277
  private _fiberRefs: FiberRefs.FiberRefs
280
278
  private _fiberId: FiberId.Runtime
281
- public _runtimeFlags: RuntimeFlags.RuntimeFlags
282
-
283
279
  private _queue = new Array<FiberMessage.FiberMessage>()
284
280
  private _children: Set<FiberRuntime<any, any>> | null = null
285
281
  private _observers = new Array<(exit: Exit.Exit<A, E>) => void>()
@@ -289,28 +285,36 @@ export class FiberRuntime<in out A, in out E = never> implements Fiber.RuntimeFi
289
285
  private _asyncBlockingOn: FiberId.FiberId | null = null
290
286
  private _exitValue: Exit.Exit<A, E> | null = null
291
287
  private _steps: Array<Snapshot> = []
292
- public _supervisor: Supervisor.Supervisor<any>
293
- public _scheduler: Scheduler
294
- private _tracer: Tracer.Tracer
288
+ private _isYielding = false
289
+
290
+ public currentRuntimeFlags: RuntimeFlags.RuntimeFlags
295
291
  public currentOpCount: number = 0
296
- private isYielding = false
292
+ public currentSupervisor!: Supervisor.Supervisor<any>
293
+ public currentScheduler!: Scheduler
294
+ public currentTracer!: Tracer.Tracer
295
+ public currentSpan!: Tracer.AnySpan | undefined
296
+ public currentContext!: Context.Context<never>
297
+ public currentDefaultServices!: Context.Context<DefaultServices>
297
298
 
298
299
  constructor(
299
300
  fiberId: FiberId.Runtime,
300
301
  fiberRefs0: FiberRefs.FiberRefs,
301
302
  runtimeFlags0: RuntimeFlags.RuntimeFlags
302
303
  ) {
303
- this._runtimeFlags = runtimeFlags0
304
+ super()
305
+ this.currentRuntimeFlags = runtimeFlags0
304
306
  this._fiberId = fiberId
305
307
  this._fiberRefs = fiberRefs0
306
- this._supervisor = this.getFiberRef(currentSupervisor)
307
- this._scheduler = this.getFiberRef(currentScheduler)
308
308
  if (_runtimeFlags.runtimeMetrics(runtimeFlags0)) {
309
309
  const tags = this.getFiberRef(core.currentMetricLabels)
310
310
  fiberStarted.unsafeUpdate(1, tags)
311
311
  fiberActive.unsafeUpdate(1, tags)
312
312
  }
313
- this._tracer = Context.get(this.getFiberRef(defaultServices.currentServices), tracer.tracerTag)
313
+ this.refreshRefCache()
314
+ }
315
+
316
+ commit(): Effect.Effect<A, E, never> {
317
+ return internalFiber.join(this)
314
318
  }
315
319
 
316
320
  /**
@@ -342,7 +346,7 @@ export class FiberRuntime<in out A, in out E = never> implements Fiber.RuntimeFi
342
346
  get runtimeFlags(): Effect.Effect<RuntimeFlags.RuntimeFlags> {
343
347
  return this.ask((state, status) => {
344
348
  if (FiberStatus.isDone(status)) {
345
- return state._runtimeFlags
349
+ return state.currentRuntimeFlags
346
350
  }
347
351
  return status.runtimeFlags
348
352
  })
@@ -528,7 +532,7 @@ export class FiberRuntime<in out A, in out E = never> implements Fiber.RuntimeFi
528
532
  * log annotations and log level) may not be up-to-date.
529
533
  */
530
534
  getFiberRefs(): FiberRefs.FiberRefs {
531
- this.setFiberRef(currentRuntimeFlags, this._runtimeFlags)
535
+ this.setFiberRef(currentRuntimeFlags, this.currentRuntimeFlags)
532
536
  return this._fiberRefs
533
537
  }
534
538
 
@@ -570,9 +574,12 @@ export class FiberRuntime<in out A, in out E = never> implements Fiber.RuntimeFi
570
574
  }
571
575
 
572
576
  refreshRefCache() {
573
- this._tracer = Context.get(this.getFiberRef(defaultServices.currentServices), tracer.tracerTag)
574
- this._supervisor = this.getFiberRef(currentSupervisor)
575
- this._scheduler = this.getFiberRef(currentScheduler)
577
+ this.currentDefaultServices = this.getFiberRef(defaultServices.currentServices)
578
+ this.currentTracer = this.currentDefaultServices.unsafeMap.get(tracer.tracerTag.key)
579
+ this.currentSupervisor = this.getFiberRef(currentSupervisor)
580
+ this.currentScheduler = this.getFiberRef(currentScheduler)
581
+ this.currentContext = this.getFiberRef(core.currentContext)
582
+ this.currentSpan = this.currentContext.unsafeMap.get(tracer.spanTag.key)
576
583
  }
577
584
 
578
585
  /**
@@ -653,7 +660,7 @@ export class FiberRuntime<in out A, in out E = never> implements Fiber.RuntimeFi
653
660
  * **NOTE**: This method must be invoked by the fiber itself.
654
661
  */
655
662
  drainQueueLaterOnExecutor() {
656
- this._scheduler.scheduleTask(
663
+ this.currentScheduler.scheduleTask(
657
664
  this.run,
658
665
  this.getFiberRef(core.currentSchedulingPriority)
659
666
  )
@@ -764,7 +771,7 @@ export class FiberRuntime<in out A, in out E = never> implements Fiber.RuntimeFi
764
771
  }
765
772
 
766
773
  reportExitValue(exit: Exit.Exit<A, E>) {
767
- if (_runtimeFlags.runtimeMetrics(this._runtimeFlags)) {
774
+ if (_runtimeFlags.runtimeMetrics(this.currentRuntimeFlags)) {
768
775
  const tags = this.getFiberRef(core.currentMetricLabels)
769
776
  const startTimeMillis = this.id().startTimeMillis
770
777
  const endTimeMillis = Date.now()
@@ -866,7 +873,7 @@ export class FiberRuntime<in out A, in out E = never> implements Fiber.RuntimeFi
866
873
  this,
867
874
  this._exitValue !== null ?
868
875
  FiberStatus.done :
869
- FiberStatus.suspended(this._runtimeFlags, this._asyncBlockingOn!)
876
+ FiberStatus.suspended(this.currentRuntimeFlags, this._asyncBlockingOn!)
870
877
  )
871
878
  return EvaluationSignalContinue
872
879
  }
@@ -882,10 +889,10 @@ export class FiberRuntime<in out A, in out E = never> implements Fiber.RuntimeFi
882
889
  * **NOTE**: This method must be invoked by the fiber itself.
883
890
  */
884
891
  evaluateEffect(effect0: Effect.Effect<any, any, any>) {
885
- this._supervisor.onResume(this)
892
+ this.currentSupervisor.onResume(this)
886
893
  try {
887
894
  let effect: Effect.Effect<any, any, any> | null =
888
- _runtimeFlags.interruptible(this._runtimeFlags) && this.isInterrupted() ?
895
+ _runtimeFlags.interruptible(this.currentRuntimeFlags) && this.isInterrupted() ?
889
896
  core.exitFailCause(this.getInterruptedCause()) :
890
897
  effect0
891
898
  while (effect !== null) {
@@ -895,7 +902,7 @@ export class FiberRuntime<in out A, in out E = never> implements Fiber.RuntimeFi
895
902
  const op = yieldedOpChannel.currentOp!
896
903
  yieldedOpChannel.currentOp = null
897
904
  if (op._op === OpCodes.OP_YIELD) {
898
- if (_runtimeFlags.cooperativeYielding(this._runtimeFlags)) {
905
+ if (_runtimeFlags.cooperativeYielding(this.currentRuntimeFlags)) {
899
906
  this.tell(FiberMessage.yieldNow())
900
907
  this.tell(FiberMessage.resume(core.exitVoid))
901
908
  effect = null
@@ -907,7 +914,7 @@ export class FiberRuntime<in out A, in out E = never> implements Fiber.RuntimeFi
907
914
  effect = null
908
915
  }
909
916
  } else {
910
- this._runtimeFlags = pipe(this._runtimeFlags, _runtimeFlags.enable(_runtimeFlags.WindDown))
917
+ this.currentRuntimeFlags = pipe(this.currentRuntimeFlags, _runtimeFlags.enable(_runtimeFlags.WindDown))
911
918
  const interruption = this.interruptAllChildren()
912
919
  if (interruption !== null) {
913
920
  effect = core.flatMap(interruption, () => exit)
@@ -926,7 +933,7 @@ export class FiberRuntime<in out A, in out E = never> implements Fiber.RuntimeFi
926
933
  }
927
934
  }
928
935
  } finally {
929
- this._supervisor.onSuspend(this)
936
+ this.currentSupervisor.onSuspend(this)
930
937
  }
931
938
  }
932
939
 
@@ -981,7 +988,7 @@ export class FiberRuntime<in out A, in out E = never> implements Fiber.RuntimeFi
981
988
  patchRuntimeFlags(oldRuntimeFlags: RuntimeFlags.RuntimeFlags, patch: RuntimeFlagsPatch.RuntimeFlagsPatch) {
982
989
  const newRuntimeFlags = _runtimeFlags.patch(oldRuntimeFlags, patch)
983
990
  ;(globalThis as any)[internalFiber.currentFiberURI] = this
984
- this._runtimeFlags = newRuntimeFlags
991
+ this.currentRuntimeFlags = newRuntimeFlags
985
992
  return newRuntimeFlags
986
993
  }
987
994
 
@@ -1016,7 +1023,7 @@ export class FiberRuntime<in out A, in out E = never> implements Fiber.RuntimeFi
1016
1023
  pushStack(cont: core.Continuation) {
1017
1024
  this._stack.push(cont)
1018
1025
  if (cont._op === "OnStep") {
1019
- this._steps.push({ refs: this.getFiberRefs(), flags: this._runtimeFlags })
1026
+ this._steps.push({ refs: this.getFiberRefs(), flags: this.currentRuntimeFlags })
1020
1027
  }
1021
1028
  }
1022
1029
 
@@ -1052,10 +1059,7 @@ export class FiberRuntime<in out A, in out E = never> implements Fiber.RuntimeFi
1052
1059
  }
1053
1060
 
1054
1061
  [OpCodes.OP_TAG](op: core.Primitive & { _op: OpCodes.OP_SYNC }) {
1055
- return core.map(
1056
- core.fiberRefGet(core.currentContext),
1057
- (context) => Context.unsafeGet(context, op as unknown as Context.Tag<any, any>)
1058
- )
1062
+ return core.sync(() => Context.unsafeGet(this.currentContext, op as unknown as Context.Tag<any, any>))
1059
1063
  }
1060
1064
 
1061
1065
  ["Left"](op: core.Primitive & { _op: "Left" }) {
@@ -1144,22 +1148,22 @@ export class FiberRuntime<in out A, in out E = never> implements Fiber.RuntimeFi
1144
1148
  switch (cont._op) {
1145
1149
  case OpCodes.OP_ON_FAILURE:
1146
1150
  case OpCodes.OP_ON_SUCCESS_AND_FAILURE: {
1147
- if (!(_runtimeFlags.interruptible(this._runtimeFlags) && this.isInterrupted())) {
1151
+ if (!(_runtimeFlags.interruptible(this.currentRuntimeFlags) && this.isInterrupted())) {
1148
1152
  return internalCall(() => cont.effect_instruction_i1(cause))
1149
1153
  } else {
1150
1154
  return core.exitFailCause(internalCause.stripFailures(cause))
1151
1155
  }
1152
1156
  }
1153
1157
  case "OnStep": {
1154
- if (!(_runtimeFlags.interruptible(this._runtimeFlags) && this.isInterrupted())) {
1158
+ if (!(_runtimeFlags.interruptible(this.currentRuntimeFlags) && this.isInterrupted())) {
1155
1159
  return core.exitSucceed(core.exitFailCause(cause))
1156
1160
  } else {
1157
1161
  return core.exitFailCause(internalCause.stripFailures(cause))
1158
1162
  }
1159
1163
  }
1160
1164
  case OpCodes.OP_REVERT_FLAGS: {
1161
- this.patchRuntimeFlags(this._runtimeFlags, cont.patch)
1162
- if (_runtimeFlags.interruptible(this._runtimeFlags) && this.isInterrupted()) {
1165
+ this.patchRuntimeFlags(this.currentRuntimeFlags, cont.patch)
1166
+ if (_runtimeFlags.interruptible(this.currentRuntimeFlags) && this.isInterrupted()) {
1163
1167
  return core.exitFailCause(internalCause.sequential(cause, this.getInterruptedCause()))
1164
1168
  } else {
1165
1169
  return core.exitFailCause(cause)
@@ -1179,14 +1183,14 @@ export class FiberRuntime<in out A, in out E = never> implements Fiber.RuntimeFi
1179
1183
  return internalCall(() =>
1180
1184
  op.effect_instruction_i0(
1181
1185
  this as FiberRuntime<unknown, unknown>,
1182
- FiberStatus.running(this._runtimeFlags) as FiberStatus.Running
1186
+ FiberStatus.running(this.currentRuntimeFlags) as FiberStatus.Running
1183
1187
  )
1184
1188
  )
1185
1189
  }
1186
1190
 
1187
1191
  ["Blocked"](op: core.Primitive & { _op: "Blocked" }) {
1188
1192
  const refs = this.getFiberRefs()
1189
- const flags = this._runtimeFlags
1193
+ const flags = this.currentRuntimeFlags
1190
1194
  if (this._steps.length > 0) {
1191
1195
  const frames: Array<core.Continuation> = []
1192
1196
  const snap = this._steps[this._steps.length - 1]
@@ -1196,7 +1200,7 @@ export class FiberRuntime<in out A, in out E = never> implements Fiber.RuntimeFi
1196
1200
  frame = this.popStack()
1197
1201
  }
1198
1202
  this.setFiberRefs(snap.refs)
1199
- this._runtimeFlags = snap.flags
1203
+ this.currentRuntimeFlags = snap.flags
1200
1204
  const patchRefs = FiberRefsPatch.diff(snap.refs, refs)
1201
1205
  const patchFlags = _runtimeFlags.diff(snap.flags, flags)
1202
1206
  return core.exitSucceed(core.blocked(
@@ -1208,7 +1212,7 @@ export class FiberRuntime<in out A, in out E = never> implements Fiber.RuntimeFi
1208
1212
  newFiber.setFiberRefs(
1209
1213
  FiberRefsPatch.patch(newFiber.id(), newFiber.getFiberRefs())(patchRefs)
1210
1214
  )
1211
- newFiber._runtimeFlags = _runtimeFlags.patch(patchFlags)(newFiber._runtimeFlags)
1215
+ newFiber.currentRuntimeFlags = _runtimeFlags.patch(patchFlags)(newFiber.currentRuntimeFlags)
1212
1216
  return op.effect_instruction_i1
1213
1217
  })
1214
1218
  ))
@@ -1227,7 +1231,7 @@ export class FiberRuntime<in out A, in out E = never> implements Fiber.RuntimeFi
1227
1231
 
1228
1232
  [OpCodes.OP_UPDATE_RUNTIME_FLAGS](op: core.Primitive & { _op: OpCodes.OP_UPDATE_RUNTIME_FLAGS }) {
1229
1233
  const updateFlags = op.effect_instruction_i0
1230
- const oldRuntimeFlags = this._runtimeFlags
1234
+ const oldRuntimeFlags = this.currentRuntimeFlags
1231
1235
  const newRuntimeFlags = _runtimeFlags.patch(oldRuntimeFlags, updateFlags)
1232
1236
  // One more chance to short circuit: if we're immediately going
1233
1237
  // to interrupt. Interruption will cause immediate reversion of
@@ -1237,7 +1241,7 @@ export class FiberRuntime<in out A, in out E = never> implements Fiber.RuntimeFi
1237
1241
  return core.exitFailCause(this.getInterruptedCause())
1238
1242
  } else {
1239
1243
  // Impossible to short circuit, so record the changes
1240
- this.patchRuntimeFlags(this._runtimeFlags, updateFlags)
1244
+ this.patchRuntimeFlags(this.currentRuntimeFlags, updateFlags)
1241
1245
  if (op.effect_instruction_i1) {
1242
1246
  // Since we updated the flags, we need to revert them
1243
1247
  const revertFlags = _runtimeFlags.diff(newRuntimeFlags, oldRuntimeFlags)
@@ -1271,13 +1275,13 @@ export class FiberRuntime<in out A, in out E = never> implements Fiber.RuntimeFi
1271
1275
 
1272
1276
  [OpCodes.OP_ASYNC](op: core.Primitive & { _op: OpCodes.OP_ASYNC }) {
1273
1277
  this._asyncBlockingOn = op.effect_instruction_i1
1274
- this.initiateAsync(this._runtimeFlags, op.effect_instruction_i0)
1278
+ this.initiateAsync(this.currentRuntimeFlags, op.effect_instruction_i0)
1275
1279
  yieldedOpChannel.currentOp = op
1276
1280
  return YieldedOp
1277
1281
  }
1278
1282
 
1279
1283
  [OpCodes.OP_YIELD](op: core.Primitive & { op: OpCodes.OP_YIELD }) {
1280
- this.isYielding = false
1284
+ this._isYielding = false
1281
1285
  yieldedOpChannel.currentOp = op
1282
1286
  return YieldedOp
1283
1287
  }
@@ -1305,19 +1309,19 @@ export class FiberRuntime<in out A, in out E = never> implements Fiber.RuntimeFi
1305
1309
  runLoop(effect0: Effect.Effect<any, any, any>): Exit.Exit<any, any> | YieldedOp {
1306
1310
  let cur: Effect.Effect<any, any, any> | YieldedOp = effect0
1307
1311
  this.currentOpCount = 0
1308
- // eslint-disable-next-line no-constant-condition
1312
+
1309
1313
  while (true) {
1310
- if ((this._runtimeFlags & OpSupervision) !== 0) {
1311
- this._supervisor.onEffect(this, cur)
1314
+ if ((this.currentRuntimeFlags & OpSupervision) !== 0) {
1315
+ this.currentSupervisor.onEffect(this, cur)
1312
1316
  }
1313
1317
  if (this._queue.length > 0) {
1314
- cur = this.drainQueueWhileRunning(this._runtimeFlags, cur)
1318
+ cur = this.drainQueueWhileRunning(this.currentRuntimeFlags, cur)
1315
1319
  }
1316
- if (!this.isYielding) {
1320
+ if (!this._isYielding) {
1317
1321
  this.currentOpCount += 1
1318
- const shouldYield = this._scheduler.shouldYield(this)
1322
+ const shouldYield = this.currentScheduler.shouldYield(this)
1319
1323
  if (shouldYield !== false) {
1320
- this.isYielding = true
1324
+ this._isYielding = true
1321
1325
  this.currentOpCount = 0
1322
1326
  const oldCur = cur
1323
1327
  cur = core.flatMap(core.yieldNow({ priority: shouldYield }), () => oldCur)
@@ -1330,12 +1334,12 @@ export class FiberRuntime<in out A, in out E = never> implements Fiber.RuntimeFi
1330
1334
  }
1331
1335
 
1332
1336
  // @ts-expect-error
1333
- cur = this._tracer.context(
1337
+ cur = this.currentTracer.context(
1334
1338
  () => {
1335
- if (version.getCurrentVersion() !== (cur as core.Primitive)[EffectTypeId]._V) {
1339
+ if (version.getCurrentVersion() !== (cur as core.Primitive)[core.EffectTypeId]._V) {
1336
1340
  return core.dieMessage(
1337
1341
  `Cannot execute an Effect versioned ${
1338
- (cur as core.Primitive)[EffectTypeId]._V
1342
+ (cur as core.Primitive)[core.EffectTypeId]._V
1339
1343
  } with a Runtime of version ${version.getCurrentVersion()}`
1340
1344
  )
1341
1345
  }
@@ -1396,6 +1400,28 @@ export const loggerWithConsoleLog = <M, O>(self: Logger<M, O>): Logger<M, void>
1396
1400
  Context.get(services, consoleTag).unsafe.log(self.log(opts))
1397
1401
  })
1398
1402
 
1403
+ /** @internal */
1404
+ export const loggerWithLeveledLog = <M, O>(self: Logger<M, O>): Logger<M, void> =>
1405
+ internalLogger.makeLogger((opts) => {
1406
+ const services = FiberRefs.getOrDefault(opts.context, defaultServices.currentServices)
1407
+ const unsafeLogger = Context.get(services, consoleTag).unsafe
1408
+ switch (opts.logLevel._tag) {
1409
+ case "Debug":
1410
+ return unsafeLogger.debug(self.log(opts))
1411
+ case "Info":
1412
+ return unsafeLogger.info(self.log(opts))
1413
+ case "Trace":
1414
+ return unsafeLogger.trace(self.log(opts))
1415
+ case "Warning":
1416
+ return unsafeLogger.warn(self.log(opts))
1417
+ case "Error":
1418
+ case "Fatal":
1419
+ return unsafeLogger.error(self.log(opts))
1420
+ default:
1421
+ return unsafeLogger.log(self.log(opts))
1422
+ }
1423
+ })
1424
+
1399
1425
  /** @internal */
1400
1426
  export const loggerWithConsoleError = <M, O>(self: Logger<M, O>): Logger<M, void> =>
1401
1427
  internalLogger.makeLogger((opts) => {
@@ -1424,7 +1450,7 @@ export const logFmtLogger: Logger<unknown, void> = globalValue(
1424
1450
  /** @internal */
1425
1451
  export const prettyLogger: Logger<unknown, void> = globalValue(
1426
1452
  Symbol.for("effect/Logger/prettyLogger"),
1427
- () => internalLogger.prettyLogger()
1453
+ () => internalLogger.prettyLoggerDefault
1428
1454
  )
1429
1455
 
1430
1456
  /** @internal */
@@ -1604,12 +1630,12 @@ export const addFinalizer = <X, R>(
1604
1630
  core.withFiberRuntime(
1605
1631
  (runtime) => {
1606
1632
  const acquireRefs = runtime.getFiberRefs()
1607
- const acquireFlags = runtime._runtimeFlags
1633
+ const acquireFlags = runtime.currentRuntimeFlags
1608
1634
  return core.flatMap(scope, (scope) =>
1609
1635
  core.scopeAddFinalizerExit(scope, (exit) =>
1610
1636
  core.withFiberRuntime((runtimeFinalizer) => {
1611
1637
  const preRefs = runtimeFinalizer.getFiberRefs()
1612
- const preFlags = runtimeFinalizer._runtimeFlags
1638
+ const preFlags = runtimeFinalizer.currentRuntimeFlags
1613
1639
  const patchRefs = FiberRefsPatch.diff(preRefs, acquireRefs)
1614
1640
  const patchFlags = _runtimeFlags.diff(preFlags, acquireFlags)
1615
1641
  const inverseRefs = FiberRefsPatch.diff(acquireRefs, preRefs)
@@ -2100,7 +2126,7 @@ export const forEachConcurrentDiscard = <A, X, E, R>(
2100
2126
  const results = new Array()
2101
2127
  const interruptAll = () =>
2102
2128
  fibers.forEach((fiber) => {
2103
- fiber._scheduler.scheduleTask(() => {
2129
+ fiber.currentScheduler.scheduleTask(() => {
2104
2130
  fiber.unsafeInterruptAsFork(parent.id())
2105
2131
  }, 0)
2106
2132
  })
@@ -2122,10 +2148,10 @@ export const forEachConcurrentDiscard = <A, X, E, R>(
2122
2148
  const fiber = unsafeForkUnstarted(
2123
2149
  runnable,
2124
2150
  parent,
2125
- parent._runtimeFlags,
2151
+ parent.currentRuntimeFlags,
2126
2152
  fiberScope.globalScope
2127
2153
  )
2128
- parent._scheduler.scheduleTask(() => {
2154
+ parent.currentScheduler.scheduleTask(() => {
2129
2155
  if (interruptImmediately) {
2130
2156
  fiber.unsafeInterruptAsFork(parent.id())
2131
2157
  }
@@ -2186,7 +2212,7 @@ export const forEachConcurrentDiscard = <A, X, E, R>(
2186
2212
  startOrder.push(fiber)
2187
2213
  fibers.add(fiber)
2188
2214
  if (interrupted) {
2189
- fiber._scheduler.scheduleTask(() => {
2215
+ fiber.currentScheduler.scheduleTask(() => {
2190
2216
  fiber.unsafeInterruptAsFork(parent.id())
2191
2217
  }, 0)
2192
2218
  }
@@ -2356,7 +2382,7 @@ export const unsafeMakeChildFiber = <A, E, R, E2, B>(
2356
2382
  childFiberRefs,
2357
2383
  core.currentContext as unknown as FiberRef.FiberRef<Context.Context<R>>
2358
2384
  )
2359
- const supervisor = childFiber._supervisor
2385
+ const supervisor = childFiber.currentSupervisor
2360
2386
 
2361
2387
  supervisor.onStart(
2362
2388
  childContext,
@@ -3363,46 +3389,51 @@ export const fiberAwaitAll = <const T extends Iterable<Fiber.Fiber<any, any>>>(
3363
3389
  > => forEach(fibers, internalFiber._await) as any
3364
3390
 
3365
3391
  /** @internal */
3366
- export const fiberAll = <A, E>(fibers: Iterable<Fiber.Fiber<A, E>>): Fiber.Fiber<Array<A>, E> => ({
3367
- [internalFiber.FiberTypeId]: internalFiber.fiberVariance,
3368
- id: () =>
3369
- RA.fromIterable(fibers).reduce((id, fiber) => FiberId.combine(id, fiber.id()), FiberId.none as FiberId.FiberId),
3370
- await: core.exit(forEachParUnbounded(fibers, (fiber) => core.flatten(fiber.await), false)),
3371
- children: core.map(forEachParUnbounded(fibers, (fiber) => fiber.children, false), RA.flatten),
3372
- inheritAll: core.forEachSequentialDiscard(fibers, (fiber) => fiber.inheritAll),
3373
- poll: core.map(
3374
- core.forEachSequential(fibers, (fiber) => fiber.poll),
3375
- RA.reduceRight(
3376
- Option.some<Exit.Exit<Array<A>, E>>(core.exitSucceed(new Array())),
3377
- (optionB, optionA) => {
3378
- switch (optionA._tag) {
3379
- case "None": {
3380
- return Option.none()
3381
- }
3382
- case "Some": {
3383
- switch (optionB._tag) {
3384
- case "None": {
3385
- return Option.none()
3386
- }
3387
- case "Some": {
3388
- return Option.some(
3389
- core.exitZipWith(optionA.value, optionB.value, {
3390
- onSuccess: (a, chunk) => [a, ...chunk],
3391
- onFailure: internalCause.parallel
3392
- })
3393
- )
3392
+ export const fiberAll = <A, E>(fibers: Iterable<Fiber.Fiber<A, E>>): Fiber.Fiber<Array<A>, E> => {
3393
+ const _fiberAll = {
3394
+ ...Effectable.CommitPrototype,
3395
+ commit() {
3396
+ return internalFiber.join(this)
3397
+ },
3398
+ [internalFiber.FiberTypeId]: internalFiber.fiberVariance,
3399
+ id: () =>
3400
+ RA.fromIterable(fibers).reduce((id, fiber) => FiberId.combine(id, fiber.id()), FiberId.none as FiberId.FiberId),
3401
+ await: core.exit(forEachParUnbounded(fibers, (fiber) => core.flatten(fiber.await), false)),
3402
+ children: core.map(forEachParUnbounded(fibers, (fiber) => fiber.children, false), RA.flatten),
3403
+ inheritAll: core.forEachSequentialDiscard(fibers, (fiber) => fiber.inheritAll),
3404
+ poll: core.map(
3405
+ core.forEachSequential(fibers, (fiber) => fiber.poll),
3406
+ RA.reduceRight(
3407
+ Option.some<Exit.Exit<Array<A>, E>>(core.exitSucceed(new Array())),
3408
+ (optionB, optionA) => {
3409
+ switch (optionA._tag) {
3410
+ case "None": {
3411
+ return Option.none()
3412
+ }
3413
+ case "Some": {
3414
+ switch (optionB._tag) {
3415
+ case "None": {
3416
+ return Option.none()
3417
+ }
3418
+ case "Some": {
3419
+ return Option.some(
3420
+ core.exitZipWith(optionA.value, optionB.value, {
3421
+ onSuccess: (a, chunk) => [a, ...chunk],
3422
+ onFailure: internalCause.parallel
3423
+ })
3424
+ )
3425
+ }
3394
3426
  }
3395
3427
  }
3396
3428
  }
3397
3429
  }
3398
- }
3399
- )
3400
- ),
3401
- interruptAsFork: (fiberId) => core.forEachSequentialDiscard(fibers, (fiber) => fiber.interruptAsFork(fiberId)),
3402
- pipe() {
3403
- return pipeArguments(this, arguments)
3430
+ )
3431
+ ),
3432
+ interruptAsFork: (fiberId: FiberId.FiberId) =>
3433
+ core.forEachSequentialDiscard(fibers, (fiber) => fiber.interruptAsFork(fiberId))
3404
3434
  }
3405
- })
3435
+ return _fiberAll
3436
+ }
3406
3437
 
3407
3438
  /* @internal */
3408
3439
  export const fiberInterruptFork = <A, E>(self: Fiber.Fiber<A, E>): Effect.Effect<void> =>
@@ -3,6 +3,7 @@ import type * as Channel from "../Channel.js"
3
3
  import * as Chunk from "../Chunk.js"
4
4
  import * as Deferred from "../Deferred.js"
5
5
  import * as Effect from "../Effect.js"
6
+ import * as Effectable from "../Effectable.js"
6
7
  import * as Exit from "../Exit.js"
7
8
  import { dual, pipe } from "../Function.js"
8
9
  import type * as GroupBy from "../GroupBy.js"
@@ -316,7 +317,7 @@ export const bindEffect = dual<
316
317
 
317
318
  const mapDequeue = <A, B>(dequeue: Queue.Dequeue<A>, f: (a: A) => B): Queue.Dequeue<B> => new MapDequeue(dequeue, f)
318
319
 
319
- class MapDequeue<in out A, out B> implements Queue.Dequeue<B> {
320
+ class MapDequeue<in out A, out B> extends Effectable.Class<B> implements Queue.Dequeue<B> {
320
321
  readonly [Queue.DequeueTypeId] = {
321
322
  _Out: (_: never) => _
322
323
  }
@@ -325,6 +326,7 @@ class MapDequeue<in out A, out B> implements Queue.Dequeue<B> {
325
326
  readonly dequeue: Queue.Dequeue<A>,
326
327
  readonly f: (a: A) => B
327
328
  ) {
329
+ super()
328
330
  }
329
331
 
330
332
  capacity(): number {
@@ -390,6 +392,10 @@ class MapDequeue<in out A, out B> implements Queue.Dequeue<B> {
390
392
  pipe() {
391
393
  return pipeArguments(this, arguments)
392
394
  }
395
+
396
+ commit() {
397
+ return this.take
398
+ }
393
399
  }
394
400
 
395
401
  /** @internal */
@@ -372,7 +372,7 @@ function mergeLeaves<K, V>(
372
372
  ): Node<K, V> {
373
373
  let stack: Stack.Stack<(node: Node<K, V>) => Node<K, V>> | undefined = undefined
374
374
  let currentShift = shift
375
- // eslint-disable-next-line no-constant-condition
375
+
376
376
  while (true) {
377
377
  const res = mergeLeavesInner(edit, currentShift, h1, n1, h2, n2)
378
378
 
@@ -221,7 +221,7 @@ export const getHash = Dual.dual<
221
221
  >(3, <K, V, K1>(self: HM.HashMap<K, V>, key: K1, hash: number) => {
222
222
  let node = (self as HashMapImpl<K, V>)._root
223
223
  let shift = 0
224
- // eslint-disable-next-line no-constant-condition
224
+
225
225
  while (true) {
226
226
  switch (node._tag) {
227
227
  case "LeafNode": {
@@ -1270,17 +1270,17 @@ const provideSomeRuntime = dual<
1270
1270
  const oldContext = fiber.getFiberRef(core.currentContext)
1271
1271
  const oldRefs = fiber.getFiberRefs()
1272
1272
  const newRefs = FiberRefsPatch.patch(fiber.id(), oldRefs)(patchRefs)
1273
- const oldFlags = fiber._runtimeFlags
1273
+ const oldFlags = fiber.currentRuntimeFlags
1274
1274
  const newFlags = runtimeFlags.patch(patchFlags)(oldFlags)
1275
1275
  const rollbackRefs = FiberRefsPatch.diff(newRefs, oldRefs)
1276
1276
  const rollbackFlags = runtimeFlags.diff(newFlags, oldFlags)
1277
1277
  fiber.setFiberRefs(newRefs)
1278
- fiber._runtimeFlags = newFlags
1278
+ fiber.currentRuntimeFlags = newFlags
1279
1279
  return fiberRuntime.ensuring(
1280
1280
  core.provideSomeContext(restore(self), Context.merge(oldContext, rt.context)),
1281
1281
  core.withFiberRuntime((fiber) => {
1282
1282
  fiber.setFiberRefs(FiberRefsPatch.patch(fiber.id(), fiber.getFiberRefs())(rollbackRefs))
1283
- fiber._runtimeFlags = runtimeFlags.patch(rollbackFlags)(fiber._runtimeFlags)
1283
+ fiber.currentRuntimeFlags = runtimeFlags.patch(rollbackFlags)(fiber.currentRuntimeFlags)
1284
1284
  return core.void
1285
1285
  })
1286
1286
  )
@@ -3,6 +3,7 @@ import * as Context from "../Context.js"
3
3
  import * as FiberRefs from "../FiberRefs.js"
4
4
  import type { LazyArg } from "../Function.js"
5
5
  import { constVoid, dual, pipe } from "../Function.js"
6
+ import { globalValue } from "../GlobalValue.js"
6
7
  import * as HashMap from "../HashMap.js"
7
8
  import * as Inspectable from "../Inspectable.js"
8
9
  import * as List from "../List.js"
@@ -570,3 +571,6 @@ const prettyLoggerBrowser = (options: {
570
571
  }
571
572
  )
572
573
  }
574
+
575
+ /** @internal */
576
+ export const prettyLoggerDefault = globalValue("effect/Logger/prettyLoggerDefault", () => prettyLogger())