From 02f996e4a2a617ba12f920d3f7840b6077431eb0 Mon Sep 17 00:00:00 2001 From: Giulio Canti Date: Tue, 6 Feb 2024 11:54:44 +0100 Subject: [PATCH] =?UTF-8?q?change=20`RuntimeFiber`=20type=20parameters=20o?= =?UTF-8?q?rder=20from=20`RuntimeFiber`=E2=80=A6=20(#2055)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .changeset/twelve-goats-impress.md | 5 ++ packages/effect/mod.sh | 2 +- packages/effect/mod.ts | 7 ++- packages/effect/src/Effect.ts | 20 +++--- packages/effect/src/Fiber.ts | 20 +++--- packages/effect/src/FiberMap.ts | 44 ++++++------- packages/effect/src/FiberSet.ts | 28 ++++----- packages/effect/src/Runtime.ts | 4 +- packages/effect/src/Supervisor.ts | 22 +++---- packages/effect/src/internal/core.ts | 4 +- .../effect/src/internal/effect/circular.ts | 10 +-- packages/effect/src/internal/fiber.ts | 12 ++-- packages/effect/src/internal/fiberRuntime.ts | 62 +++++++++---------- packages/effect/src/internal/runtime.ts | 6 +- packages/effect/src/internal/stream.ts | 4 +- packages/effect/src/internal/supervisor.ts | 56 ++++++++--------- 16 files changed, 158 insertions(+), 148 deletions(-) create mode 100644 .changeset/twelve-goats-impress.md diff --git a/.changeset/twelve-goats-impress.md b/.changeset/twelve-goats-impress.md new file mode 100644 index 0000000000..305fcff9c4 --- /dev/null +++ b/.changeset/twelve-goats-impress.md @@ -0,0 +1,5 @@ +--- +"effect": minor +--- + +change `RuntimeFiber` type parameters order from `RuntimeFiber` to `RuntimeFiber` diff --git a/packages/effect/mod.sh b/packages/effect/mod.sh index f2857cf163..cf0a298205 100755 --- a/packages/effect/mod.sh +++ b/packages/effect/mod.sh @@ -1,5 +1,5 @@ #!/bin/bash -dirs=(../effect/test) +dirs=(../effect/src) for dir in ${dirs[@]}; do echo Refactoring $dir diff --git a/packages/effect/mod.ts b/packages/effect/mod.ts index 4f7554b24e..fed5ac76bd 100644 --- a/packages/effect/mod.ts +++ b/packages/effect/mod.ts @@ -8,7 +8,8 @@ const enabled = { swapDeferredParams: false, swapTDeferredParams: false, swapTakeParams: false, - swapFiberParams: true, + swapFiberParams: false, + swapRuntimeFiberParams: true, cleanupSTM: false, cleanupEffect: false, cleanupStream: false, @@ -93,6 +94,7 @@ const swapDeferredParams = swapParamsEA("Deferred") const swapTDeferredParams = swapParamsEA("TDeferred") const swapTakeParams = swapParamsEA("Take") const swapFiberParams = swapParamsEA("Fiber") +const swapRuntimeFiberParams = swapParamsEA("FiberRuntime") const swapSTMParams = swapParamsREA("STM") const swapSTMGenParams = swapParamsREA("STMGen") @@ -144,6 +146,9 @@ export default function transformer(file: cs.FileInfo, api: cs.API) { if (enabled.swapFiberParams) { swapFiberParams(ast) } + if (enabled.swapRuntimeFiberParams) { + swapRuntimeFiberParams(ast) + } if (enabled.cleanupEffect) { cleanupEffect(ast) } diff --git a/packages/effect/src/Effect.ts b/packages/effect/src/Effect.ts index 432e3d35d5..fecad0c265 100644 --- a/packages/effect/src/Effect.ts +++ b/packages/effect/src/Effect.ts @@ -2609,7 +2609,7 @@ export const fiberIdWith: (f: (descriptor: FiberId.Runtime) => Effect(self: Effect) => Effect, never, R> = fiberRuntime.fork +export const fork: (self: Effect) => Effect, never, R> = fiberRuntime.fork /** * Forks the effect into a new fiber attached to the global scope. Because the @@ -2619,7 +2619,7 @@ export const fork: (self: Effect) => Effect(self: Effect) => Effect, never, R> = +export const forkDaemon: (self: Effect) => Effect, never, R> = fiberRuntime.forkDaemon /** @@ -2657,8 +2657,8 @@ export const forkAll: { * @category supervision & fibers */ export const forkIn: { - (scope: Scope.Scope): (self: Effect) => Effect, never, R> - (self: Effect, scope: Scope.Scope): Effect, never, R> + (scope: Scope.Scope): (self: Effect) => Effect, never, R> + (self: Effect, scope: Scope.Scope): Effect, never, R> } = circular.forkIn /** @@ -2667,7 +2667,7 @@ export const forkIn: { * @since 2.0.0 * @category supervision & fibers */ -export const forkScoped: (self: Effect) => Effect, never, Scope.Scope | R> = +export const forkScoped: (self: Effect) => Effect, never, Scope.Scope | R> = circular.forkScoped /** @@ -2679,11 +2679,11 @@ export const forkScoped: (self: Effect) => Effect( handler: (e: E) => Effect - ): (self: Effect) => Effect, never, R> + ): (self: Effect) => Effect, never, R> ( self: Effect, handler: (e: E) => Effect - ): Effect, never, R> + ): Effect, never, R> } = fiberRuntime.forkWithErrorHandler /** @@ -4087,11 +4087,11 @@ export const schedule: { export const scheduleForked: { ( schedule: Schedule.Schedule - ): (self: Effect) => Effect> + ): (self: Effect) => Effect> ( self: Effect, schedule: Schedule.Schedule - ): Effect> + ): Effect> } = circular.scheduleForked /** @@ -4706,7 +4706,7 @@ export const makeSemaphore: (permits: number) => Effect = circular.ma export const runFork: ( effect: Effect, options?: Runtime.RunForkOptions -) => Fiber.RuntimeFiber = _runtime.unsafeForkEffect +) => Fiber.RuntimeFiber = _runtime.unsafeForkEffect /** * @since 2.0.0 diff --git a/packages/effect/src/Fiber.ts b/packages/effect/src/Fiber.ts index d5dcb00134..052c8e3ffb 100644 --- a/packages/effect/src/Fiber.ts +++ b/packages/effect/src/Fiber.ts @@ -101,7 +101,7 @@ export interface Fiber extends Fiber.Variance, Pipea * @since 2.0.0 * @category models */ -export interface RuntimeFiber extends Fiber, Fiber.RuntimeVariance { +export interface RuntimeFiber extends Fiber, Fiber.RuntimeVariance { /** * Reads the current number of ops that have occurred since the last yield */ @@ -165,7 +165,7 @@ export declare namespace Fiber { * @since 2.0.0 * @category models */ - export type Runtime = RuntimeFiber + export type Runtime = RuntimeFiber /** * @since 2.0.0 @@ -181,10 +181,10 @@ export declare namespace Fiber { /** * @since 2.0.0 */ - export interface RuntimeVariance { + export interface RuntimeVariance { readonly [RuntimeFiberTypeId]: { - readonly _E: Types.Covariant readonly _A: Types.Covariant + readonly _E: Types.Covariant } } @@ -246,7 +246,7 @@ export const isFiber: (u: unknown) => u is Fiber = internal.is * @since 2.0.0 * @category refinements */ -export const isRuntimeFiber: (self: Fiber) => self is RuntimeFiber = internal.isRuntimeFiber +export const isRuntimeFiber: (self: Fiber) => self is RuntimeFiber = internal.isRuntimeFiber /** * The identity of the fiber. @@ -306,7 +306,7 @@ export const done: (exit: Exit.Exit) => Fiber = internal.done * @since 2.0.0 * @category destructors */ -export const dump: (self: RuntimeFiber) => Effect.Effect = internal.dump +export const dump: (self: RuntimeFiber) => Effect.Effect = internal.dump /** * @since 2.0.0 @@ -497,14 +497,14 @@ export const match: { ( options: { readonly onFiber: (fiber: Fiber) => Z - readonly onRuntimeFiber: (fiber: RuntimeFiber) => Z + readonly onRuntimeFiber: (fiber: RuntimeFiber) => Z } ): (self: Fiber) => Z ( self: Fiber, options: { readonly onFiber: (fiber: Fiber) => Z - readonly onRuntimeFiber: (fiber: RuntimeFiber) => Z + readonly onRuntimeFiber: (fiber: RuntimeFiber) => Z } ): Z } = internal.match @@ -558,7 +558,7 @@ export const poll: (self: Fiber) => Effect.Effect(self: RuntimeFiber) => Effect.Effect = internal.pretty +export const pretty: (self: RuntimeFiber) => Effect.Effect = internal.pretty /** * Returns a chunk containing all root fibers. @@ -592,7 +592,7 @@ export const scoped: (self: Fiber) => Effect.Effect, nev * @since 2.0.0 * @category getters */ -export const status: (self: RuntimeFiber) => Effect.Effect = internal.status +export const status: (self: RuntimeFiber) => Effect.Effect = internal.status /** * Returns a fiber that has already succeeded with the specified value. diff --git a/packages/effect/src/FiberMap.ts b/packages/effect/src/FiberMap.ts index 7a03887bae..e10687860f 100644 --- a/packages/effect/src/FiberMap.ts +++ b/packages/effect/src/FiberMap.ts @@ -32,10 +32,10 @@ export type TypeId = typeof TypeId * @categories models */ export interface FiberMap - extends Pipeable, Inspectable.Inspectable, Iterable<[K, Fiber.RuntimeFiber]> + extends Pipeable, Inspectable.Inspectable, Iterable<[K, Fiber.RuntimeFiber]> { readonly [TypeId]: TypeId - readonly backing: MutableHashMap.MutableHashMap> + readonly backing: MutableHashMap.MutableHashMap> } /** @@ -111,7 +111,7 @@ export const makeRuntime = (): Effect.Effect< key: K, effect: Effect.Effect, options?: Runtime.RunForkOptions | undefined - ) => Fiber.RuntimeFiber, + ) => Fiber.RuntimeFiber, never, Scope.Scope | R > => @@ -130,25 +130,25 @@ export const makeRuntime = (): Effect.Effect< export const unsafeSet: { ( key: K, - fiber: Fiber.RuntimeFiber, + fiber: Fiber.RuntimeFiber, interruptAs?: FiberId.FiberId ): (self: FiberMap) => void ( self: FiberMap, key: K, - fiber: Fiber.RuntimeFiber, + fiber: Fiber.RuntimeFiber, interruptAs?: FiberId.FiberId ): void } = dual< ( key: K, - fiber: Fiber.RuntimeFiber, + fiber: Fiber.RuntimeFiber, interruptAs?: FiberId.FiberId ) => (self: FiberMap) => void, ( self: FiberMap, key: K, - fiber: Fiber.RuntimeFiber, + fiber: Fiber.RuntimeFiber, interruptAs?: FiberId.FiberId ) => void >((args) => isFiberMap(args[0]), (self, key, fiber, interruptAs) => { @@ -178,22 +178,22 @@ export const unsafeSet: { export const set: { ( key: K, - fiber: Fiber.RuntimeFiber + fiber: Fiber.RuntimeFiber ): (self: FiberMap) => Effect.Effect ( self: FiberMap, key: K, - fiber: Fiber.RuntimeFiber + fiber: Fiber.RuntimeFiber ): Effect.Effect } = dual< ( key: K, - fiber: Fiber.RuntimeFiber + fiber: Fiber.RuntimeFiber ) => (self: FiberMap) => Effect.Effect, ( self: FiberMap, key: K, - fiber: Fiber.RuntimeFiber + fiber: Fiber.RuntimeFiber ) => Effect.Effect >(3, (self, key, fiber) => Effect.fiberIdWith( @@ -207,16 +207,16 @@ export const set: { * @categories combinators */ export const unsafeGet: { - (key: K): (self: FiberMap) => Option.Option> - (self: FiberMap, key: K): Option.Option> + (key: K): (self: FiberMap) => Option.Option> + (self: FiberMap, key: K): Option.Option> } = dual< ( key: K - ) => (self: FiberMap) => Option.Option>, + ) => (self: FiberMap) => Option.Option>, ( self: FiberMap, key: K - ) => Option.Option> + ) => Option.Option> >(2, (self, key) => MutableHashMap.get(self.backing, key)) /** @@ -226,16 +226,16 @@ export const unsafeGet: { * @categories combinators */ export const get: { - (key: K): (self: FiberMap) => Effect.Effect, NoSuchElementException> - (self: FiberMap, key: K): Effect.Effect, NoSuchElementException> + (key: K): (self: FiberMap) => Effect.Effect, NoSuchElementException> + (self: FiberMap, key: K): Effect.Effect, NoSuchElementException> } = dual< ( key: K - ) => (self: FiberMap) => Effect.Effect, NoSuchElementException>, + ) => (self: FiberMap) => Effect.Effect, NoSuchElementException>, ( self: FiberMap, key: K - ) => Effect.Effect, NoSuchElementException> + ) => Effect.Effect, NoSuchElementException> >(2, (self, key) => Effect.suspend(() => MutableHashMap.get(self.backing, key))) /** @@ -290,12 +290,12 @@ export const run: { key: K ): ( effect: Effect.Effect - ) => Effect.Effect, never, R> + ) => Effect.Effect, never, R> ( self: FiberMap, key: K, effect: Effect.Effect - ): Effect.Effect, never, R> + ): Effect.Effect, never, R> } = function() { if (arguments.length === 2) { const self = arguments[0] as FiberMap @@ -349,7 +349,7 @@ export const runtime: ( key: K, effect: Effect.Effect, options?: Runtime.RunForkOptions | undefined - ) => Fiber.RuntimeFiber, + ) => Fiber.RuntimeFiber, never, R > = (self: FiberMap) => () => diff --git a/packages/effect/src/FiberSet.ts b/packages/effect/src/FiberSet.ts index 610b36d8cd..c6d244ac50 100644 --- a/packages/effect/src/FiberSet.ts +++ b/packages/effect/src/FiberSet.ts @@ -26,9 +26,9 @@ export type TypeId = typeof TypeId * @since 2.0.0 * @categories models */ -export interface FiberSet extends Pipeable, Inspectable.Inspectable, Iterable> { +export interface FiberSet extends Pipeable, Inspectable.Inspectable, Iterable> { readonly [TypeId]: TypeId - readonly backing: Set> + readonly backing: Set> } /** @@ -103,7 +103,7 @@ export const makeRuntime = (): Effect.Effect< ( effect: Effect.Effect, options?: Runtime.RunForkOptions | undefined - ) => Fiber.RuntimeFiber, + ) => Fiber.RuntimeFiber, never, Scope.Scope | R > => @@ -119,15 +119,15 @@ export const makeRuntime = (): Effect.Effect< * @categories combinators */ export const unsafeAdd: { - (fiber: Fiber.RuntimeFiber): (self: FiberSet) => void - (self: FiberSet, fiber: Fiber.RuntimeFiber): void + (fiber: Fiber.RuntimeFiber): (self: FiberSet) => void + (self: FiberSet, fiber: Fiber.RuntimeFiber): void } = dual< ( - fiber: Fiber.RuntimeFiber + fiber: Fiber.RuntimeFiber ) => (self: FiberSet) => void, ( self: FiberSet, - fiber: Fiber.RuntimeFiber + fiber: Fiber.RuntimeFiber ) => void >(2, (self, fiber) => { if (self.backing.has(fiber)) { @@ -147,19 +147,19 @@ export const unsafeAdd: { */ export const add: { ( - fiber: Fiber.RuntimeFiber + fiber: Fiber.RuntimeFiber ): (self: FiberSet) => Effect.Effect ( self: FiberSet, - fiber: Fiber.RuntimeFiber + fiber: Fiber.RuntimeFiber ): Effect.Effect } = dual< ( - fiber: Fiber.RuntimeFiber + fiber: Fiber.RuntimeFiber ) => (self: FiberSet) => Effect.Effect, ( self: FiberSet, - fiber: Fiber.RuntimeFiber + fiber: Fiber.RuntimeFiber ) => Effect.Effect >(2, (self, fiber) => Effect.sync(() => unsafeAdd(self, fiber))) @@ -185,11 +185,11 @@ export const clear = (self: FiberSet): Effect.Effect => export const run: { (self: FiberSet): ( effect: Effect.Effect - ) => Effect.Effect, never, R> + ) => Effect.Effect, never, R> ( self: FiberSet, effect: Effect.Effect - ): Effect.Effect, never, R> + ): Effect.Effect, never, R> } = function() { const self = arguments[0] as FiberSet if (arguments.length === 1) { @@ -238,7 +238,7 @@ export const runtime: ( ( effect: Effect.Effect, options?: Runtime.RunForkOptions | undefined - ) => Fiber.RuntimeFiber, + ) => Fiber.RuntimeFiber, never, R > = (self: FiberSet) => () => diff --git a/packages/effect/src/Runtime.ts b/packages/effect/src/Runtime.ts index b390c241af..850fab47b3 100644 --- a/packages/effect/src/Runtime.ts +++ b/packages/effect/src/Runtime.ts @@ -21,7 +21,7 @@ import type { Scope } from "./Scope.js" */ export interface AsyncFiberException { readonly _tag: "AsyncFiberException" - readonly fiber: Fiber.RuntimeFiber + readonly fiber: Fiber.RuntimeFiber } /** @@ -71,7 +71,7 @@ export interface RunForkOptions { */ export const runFork: ( runtime: Runtime -) => (self: Effect.Effect, options?: RunForkOptions) => Fiber.RuntimeFiber = internal.unsafeFork +) => (self: Effect.Effect, options?: RunForkOptions) => Fiber.RuntimeFiber = internal.unsafeFork /** * Executes the effect synchronously returning the exit. diff --git a/packages/effect/src/Supervisor.ts b/packages/effect/src/Supervisor.ts index ad15a3ee49..83161a252c 100644 --- a/packages/effect/src/Supervisor.ts +++ b/packages/effect/src/Supervisor.ts @@ -48,28 +48,28 @@ export interface Supervisor extends Supervisor.Variance { context: Context.Context, effect: Effect.Effect, parent: Option.Option>, - fiber: Fiber.RuntimeFiber + fiber: Fiber.RuntimeFiber ): void /** * Supervises the end of a `Fiber`. */ - onEnd(value: Exit.Exit, fiber: Fiber.RuntimeFiber): void + onEnd(value: Exit.Exit, fiber: Fiber.RuntimeFiber): void /** * Supervises the execution of an `Effect` by a `Fiber`. */ - onEffect(fiber: Fiber.RuntimeFiber, effect: Effect.Effect): void + onEffect(fiber: Fiber.RuntimeFiber, effect: Effect.Effect): void /** * Supervises the suspension of a computation running within a `Fiber`. */ - onSuspend(fiber: Fiber.RuntimeFiber): void + onSuspend(fiber: Fiber.RuntimeFiber): void /** * Supervises the resumption of a computation running within a `Fiber`. */ - onResume(fiber: Fiber.RuntimeFiber): void + onResume(fiber: Fiber.RuntimeFiber): void /** * Maps this supervisor to another one, which has the same effect, but whose @@ -165,7 +165,7 @@ export abstract class AbstractSupervisor implements Supervisor { _context: Context.Context, _effect: Effect.Effect, _parent: Option.Option>, - _fiber: Fiber.RuntimeFiber + _fiber: Fiber.RuntimeFiber ): void { // } @@ -175,7 +175,7 @@ export abstract class AbstractSupervisor implements Supervisor { */ onEnd( _value: Exit.Exit, - _fiber: Fiber.RuntimeFiber + _fiber: Fiber.RuntimeFiber ): void { // } @@ -184,7 +184,7 @@ export abstract class AbstractSupervisor implements Supervisor { * @since 2.0.0 */ onEffect( - _fiber: Fiber.RuntimeFiber, + _fiber: Fiber.RuntimeFiber, _effect: Effect.Effect ): void { // @@ -194,7 +194,7 @@ export abstract class AbstractSupervisor implements Supervisor { * @since 2.0.0 */ onSuspend( - _fiber: Fiber.RuntimeFiber + _fiber: Fiber.RuntimeFiber ): void { // } @@ -203,7 +203,7 @@ export abstract class AbstractSupervisor implements Supervisor { * @since 2.0.0 */ onResume( - _fiber: Fiber.RuntimeFiber + _fiber: Fiber.RuntimeFiber ): void { // } @@ -227,7 +227,7 @@ export abstract class AbstractSupervisor implements Supervisor { /** * @since 2.0.0 */ - onRun(execution: () => X, _fiber: Fiber.RuntimeFiber): X { + onRun(execution: () => X, _fiber: Fiber.RuntimeFiber): X { return execution() } diff --git a/packages/effect/src/internal/core.ts b/packages/effect/src/internal/core.ts index b731371b11..778e310a52 100644 --- a/packages/effect/src/internal/core.ts +++ b/packages/effect/src/internal/core.ts @@ -375,7 +375,7 @@ export const isEffect = (u: unknown): u is Effect.Effect( - withRuntime: (fiber: FiberRuntime.FiberRuntime, status: FiberStatus.Running) => Effect.Effect + withRuntime: (fiber: FiberRuntime.FiberRuntime, status: FiberStatus.Running) => Effect.Effect ): Effect.Effect => { internalize(withRuntime) const effect = new EffectPrimitive(OpCodes.OP_WITH_RUNTIME) as any @@ -3058,7 +3058,7 @@ export const mapInputContext = dual< // ----------------------------------------------------------------------------- /** @internal */ -export const currentSpanFromFiber = (fiber: Fiber.RuntimeFiber): Option.Option => { +export const currentSpanFromFiber = (fiber: Fiber.RuntimeFiber): Option.Option => { const span = fiber.getFiberRef(currentContext).unsafeMap.get(internalTracer.spanTag.key) as | Tracer.ParentSpan | undefined diff --git a/packages/effect/src/internal/effect/circular.ts b/packages/effect/src/internal/effect/circular.ts index d9939c1d06..8fbcf043d3 100644 --- a/packages/effect/src/internal/effect/circular.ts +++ b/packages/effect/src/internal/effect/circular.ts @@ -260,8 +260,8 @@ export const forkAll: { /** @internal */ export const forkIn = dual< - (scope: Scope.Scope) => (self: Effect.Effect) => Effect.Effect, never, R>, - (self: Effect.Effect, scope: Scope.Scope) => Effect.Effect, never, R> + (scope: Scope.Scope) => (self: Effect.Effect) => Effect.Effect, never, R>, + (self: Effect.Effect, scope: Scope.Scope) => Effect.Effect, never, R> >( 2, (self, scope) => @@ -287,7 +287,7 @@ export const forkIn = dual< /** @internal */ export const forkScoped = ( self: Effect.Effect -): Effect.Effect, never, R | Scope.Scope> => +): Effect.Effect, never, R | Scope.Scope> => fiberRuntime.scopeWith((scope) => forkIn(self, scope)) /** @internal */ @@ -378,11 +378,11 @@ export const scheduleForked = dual< schedule: Schedule.Schedule ) => ( self: Effect.Effect - ) => Effect.Effect, never, R | R2 | Scope.Scope>, + ) => Effect.Effect, never, R | R2 | Scope.Scope>, ( self: Effect.Effect, schedule: Schedule.Schedule - ) => Effect.Effect, never, R | R2 | Scope.Scope> + ) => Effect.Effect, never, R | R2 | Scope.Scope> >(2, (self, schedule) => pipe(self, _schedule.schedule_Effect(schedule), forkScoped)) /** @internal */ diff --git a/packages/effect/src/internal/fiber.ts b/packages/effect/src/internal/fiber.ts index 8103a804c4..11e268639f 100644 --- a/packages/effect/src/internal/fiber.ts +++ b/packages/effect/src/internal/fiber.ts @@ -64,7 +64,7 @@ export const Order: order.Order> = pipe( export const isFiber = (u: unknown): u is Fiber.Fiber => hasProperty(u, FiberTypeId) /** @internal */ -export const isRuntimeFiber = (self: Fiber.Fiber): self is Fiber.RuntimeFiber => +export const isRuntimeFiber = (self: Fiber.Fiber): self is Fiber.RuntimeFiber => RuntimeFiberTypeId in self /** @internal */ @@ -87,7 +87,7 @@ export const done = (exit: Exit.Exit): Fiber.Fiber => ({ }) /** @internal */ -export const dump = (self: Fiber.RuntimeFiber): Effect.Effect => +export const dump = (self: Fiber.RuntimeFiber): Effect.Effect => core.map(self.status, (status) => ({ id: self.id(), status })) /** @internal */ @@ -194,14 +194,14 @@ export const match = dual< ( options: { readonly onFiber: (fiber: Fiber.Fiber) => Z - readonly onRuntimeFiber: (fiber: Fiber.RuntimeFiber) => Z + readonly onRuntimeFiber: (fiber: Fiber.RuntimeFiber) => Z } ) => (self: Fiber.Fiber) => Z, ( self: Fiber.Fiber, options: { readonly onFiber: (fiber: Fiber.Fiber) => Z - readonly onRuntimeFiber: (fiber: Fiber.RuntimeFiber) => Z + readonly onRuntimeFiber: (fiber: Fiber.RuntimeFiber) => Z } ) => Z >(2, (self, { onFiber, onRuntimeFiber }) => { @@ -300,7 +300,7 @@ const renderStatus = (status: FiberStatus.FiberStatus): string => { } /** @internal */ -export const pretty = (self: Fiber.RuntimeFiber): Effect.Effect => +export const pretty = (self: Fiber.RuntimeFiber): Effect.Effect => core.flatMap(Clock.currentTimeMillis, (now) => core.map(dump(self), (dump) => { const time = now - dump.id.startTimeMillis @@ -329,7 +329,7 @@ export const unsafeRoots = (): Array> => Array.from export const roots: Effect.Effect>> = core.sync(unsafeRoots) /** @internal */ -export const status = (self: Fiber.RuntimeFiber): Effect.Effect => self.status +export const status = (self: Fiber.RuntimeFiber): Effect.Effect => self.status /** @internal */ export const succeed = (value: A): Fiber.Fiber => done(Exit.succeed(value)) diff --git a/packages/effect/src/internal/fiberRuntime.ts b/packages/effect/src/internal/fiberRuntime.ts index 6530493a8f..6b967226e1 100644 --- a/packages/effect/src/internal/fiberRuntime.ts +++ b/packages/effect/src/internal/fiberRuntime.ts @@ -254,7 +254,7 @@ export interface Snapshot { } /** @internal */ -export class FiberRuntime implements Fiber.RuntimeFiber { +export class FiberRuntime implements Fiber.RuntimeFiber { readonly [internalFiber.FiberTypeId] = internalFiber.fiberVariance readonly [internalFiber.RuntimeFiberTypeId] = runtimeFiberVariance @@ -1931,7 +1931,7 @@ export const forEachConcurrentDiscard = ( let counter = 0 let interrupted = false const fibersCount = n ? Math.min(todos.length, n) : todos.length - const fibers = new Set | Effect.Blocked<_, E>>>() + const fibers = new Set | Effect.Blocked<_, E>>>() const results = new Array() const interruptAll = () => fibers.forEach((fiber) => { @@ -1939,8 +1939,8 @@ export const forEachConcurrentDiscard = ( fiber.unsafeInterruptAsFork(parent.id()) }, 0) }) - const startOrder = new Array | Effect.Blocked<_, E>>>() - const joinOrder = new Array | Effect.Blocked<_, E>>>() + const startOrder = new Array | Effect.Blocked<_, E>>>() + const joinOrder = new Array | Effect.Blocked<_, E>>>() const residual = new Array() const collectExits = () => { const exits: Array> = results @@ -2095,22 +2095,22 @@ export const forEachParN = ( }) /* @internal */ -export const fork = (self: Effect.Effect): Effect.Effect, never, R> => +export const fork = (self: Effect.Effect): Effect.Effect, never, R> => core.withFiberRuntime((state, status) => core.succeed(unsafeFork(self, state, status.runtimeFlags))) /* @internal */ -export const forkDaemon = (self: Effect.Effect): Effect.Effect, never, R> => +export const forkDaemon = (self: Effect.Effect): Effect.Effect, never, R> => forkWithScopeOverride(self, fiberScope.globalScope) /* @internal */ export const forkWithErrorHandler = dual< ( handler: (e: E) => Effect.Effect - ) => (self: Effect.Effect) => Effect.Effect, never, R>, + ) => (self: Effect.Effect) => Effect.Effect, never, R>, ( self: Effect.Effect, handler: (e: E) => Effect.Effect - ) => Effect.Effect, never, R> + ) => Effect.Effect, never, R> >(2, (self, handler) => fork(core.onError(self, (cause) => { const either = internalCause.failureOrCause(cause) @@ -2125,10 +2125,10 @@ export const forkWithErrorHandler = dual< /** @internal */ export const unsafeFork = ( effect: Effect.Effect, - parentFiber: FiberRuntime, + parentFiber: FiberRuntime, parentRuntimeFlags: RuntimeFlags.RuntimeFlags, overrideScope: fiberScope.FiberScope | null = null -): FiberRuntime => { +): FiberRuntime => { const childFiber = unsafeMakeChildFiber(effect, parentFiber, parentRuntimeFlags, overrideScope) childFiber.resume(effect) return childFiber @@ -2137,10 +2137,10 @@ export const unsafeFork = ( /** @internal */ export const unsafeForkUnstarted = ( effect: Effect.Effect, - parentFiber: FiberRuntime, + parentFiber: FiberRuntime, parentRuntimeFlags: RuntimeFlags.RuntimeFlags, overrideScope: fiberScope.FiberScope | null = null -): FiberRuntime => { +): FiberRuntime => { const childFiber = unsafeMakeChildFiber(effect, parentFiber, parentRuntimeFlags, overrideScope) return childFiber } @@ -2148,14 +2148,14 @@ export const unsafeForkUnstarted = ( /** @internal */ export const unsafeMakeChildFiber = ( effect: Effect.Effect, - parentFiber: FiberRuntime, + parentFiber: FiberRuntime, parentRuntimeFlags: RuntimeFlags.RuntimeFlags, overrideScope: fiberScope.FiberScope | null = null -): FiberRuntime => { +): FiberRuntime => { const childId = FiberId.unsafeMake() const parentFiberRefs = parentFiber.getFiberRefs() const childFiberRefs = fiberRefs.forkAs(parentFiberRefs, childId) - const childFiber = new FiberRuntime(childId, childFiberRefs, parentRuntimeFlags) + const childFiber = new FiberRuntime(childId, childFiberRefs, parentRuntimeFlags) const childContext = fiberRefs.getOrDefault( childFiberRefs, core.currentContext as unknown as FiberRef.FiberRef> @@ -2185,7 +2185,7 @@ export const unsafeMakeChildFiber = ( const forkWithScopeOverride = ( self: Effect.Effect, scopeOverride: fiberScope.FiberScope -): Effect.Effect, never, R> => +): Effect.Effect, never, R> => core.withFiberRuntime((parentFiber, parentStatus) => core.succeed(unsafeFork(self, parentFiber, parentStatus.runtimeFlags, scopeOverride)) ) @@ -2335,7 +2335,7 @@ export const raceAll = (all: Iterable>): Effect. effects, core.forEachSequential((effect) => fork(core.interruptible(effect))), core.map((fibers) => Chunk.unsafeFromArray(fibers)), - core.map((tail) => pipe(tail, Chunk.prepend(head)) as Chunk.Chunk>), + core.map((tail) => pipe(tail, Chunk.prepend(head)) as Chunk.Chunk>), core.tap((fibers) => pipe( fibers, @@ -3232,12 +3232,12 @@ export const raceFibersWith = dual< other: Effect.Effect, options: { readonly onSelfWin: ( - winner: Fiber.RuntimeFiber, - loser: Fiber.RuntimeFiber + winner: Fiber.RuntimeFiber, + loser: Fiber.RuntimeFiber ) => Effect.Effect readonly onOtherWin: ( - winner: Fiber.RuntimeFiber, - loser: Fiber.RuntimeFiber + winner: Fiber.RuntimeFiber, + loser: Fiber.RuntimeFiber ) => Effect.Effect readonly selfScope?: fiberScope.FiberScope | undefined readonly otherScope?: fiberScope.FiberScope | undefined @@ -3248,12 +3248,12 @@ export const raceFibersWith = dual< other: Effect.Effect, options: { readonly onSelfWin: ( - winner: Fiber.RuntimeFiber, - loser: Fiber.RuntimeFiber + winner: Fiber.RuntimeFiber, + loser: Fiber.RuntimeFiber ) => Effect.Effect readonly onOtherWin: ( - winner: Fiber.RuntimeFiber, - loser: Fiber.RuntimeFiber + winner: Fiber.RuntimeFiber, + loser: Fiber.RuntimeFiber ) => Effect.Effect readonly selfScope?: fiberScope.FiberScope | undefined readonly otherScope?: fiberScope.FiberScope | undefined @@ -3264,12 +3264,12 @@ export const raceFibersWith = dual< other: Effect.Effect, options: { readonly onSelfWin: ( - winner: Fiber.RuntimeFiber, - loser: Fiber.RuntimeFiber + winner: Fiber.RuntimeFiber, + loser: Fiber.RuntimeFiber ) => Effect.Effect readonly onOtherWin: ( - winner: Fiber.RuntimeFiber, - loser: Fiber.RuntimeFiber + winner: Fiber.RuntimeFiber, + loser: Fiber.RuntimeFiber ) => Effect.Effect readonly selfScope?: fiberScope.FiberScope | undefined readonly otherScope?: fiberScope.FiberScope | undefined @@ -3278,13 +3278,13 @@ export const raceFibersWith = dual< core.withFiberRuntime((parentFiber, parentStatus) => { const parentRuntimeFlags = parentStatus.runtimeFlags const raceIndicator = MRef.make(true) - const leftFiber: FiberRuntime = unsafeMakeChildFiber( + const leftFiber: FiberRuntime = unsafeMakeChildFiber( self, parentFiber, parentRuntimeFlags, options.selfScope ) - const rightFiber: FiberRuntime = unsafeMakeChildFiber( + const rightFiber: FiberRuntime = unsafeMakeChildFiber( other, parentFiber, parentRuntimeFlags, diff --git a/packages/effect/src/internal/runtime.ts b/packages/effect/src/internal/runtime.ts index 04e18e433b..7c19b83640 100644 --- a/packages/effect/src/internal/runtime.ts +++ b/packages/effect/src/internal/runtime.ts @@ -31,7 +31,7 @@ export const unsafeFork = (runtime: Runtime.Runtime) => ( self: Effect.Effect, options?: Runtime.RunForkOptions -): Fiber.RuntimeFiber => { +): Fiber.RuntimeFiber => { const fiberId = FiberId.unsafeMake() const fiberRefUpdates: ReadonlyArray.NonEmptyArray< readonly [FiberRef.FiberRef, ReadonlyArray.NonEmptyReadonlyArray] @@ -50,7 +50,7 @@ export const unsafeFork = (runtime: Runtime.Runtime) => fiberRefs = options.updateRefs(fiberRefs, fiberId) } - const fiberRuntime: FiberRuntime.FiberRuntime = new FiberRuntime.FiberRuntime( + const fiberRuntime: FiberRuntime.FiberRuntime = new FiberRuntime.FiberRuntime( fiberId, fiberRefs, runtime.runtimeFlags @@ -131,7 +131,7 @@ export const unsafeRunSync = (runtime: Runtime.Runtime) => (effect: } } -const asyncFiberException = (fiber: Fiber.RuntimeFiber): Runtime.AsyncFiberException => { +const asyncFiberException = (fiber: Fiber.RuntimeFiber): Runtime.AsyncFiberException => { const limit = Error.stackTraceLimit Error.stackTraceLimit = 0 const error = (new Error()) as any diff --git a/packages/effect/src/internal/stream.ts b/packages/effect/src/internal/stream.ts index aba7a1f7c8..118d50c1f2 100644 --- a/packages/effect/src/internal/stream.ts +++ b/packages/effect/src/internal/stream.ts @@ -282,8 +282,8 @@ export const aggregateWithinEither = dual< const timeout = (lastB: Option.Option): Effect.Effect, R2 | R3> => scheduleDriver.next(lastB) const scheduledAggregator = ( - sinkFiber: Fiber.RuntimeFiber>, B]>, - scheduleFiber: Fiber.RuntimeFiber, C>, + sinkFiber: Fiber.RuntimeFiber>, B], E | E2>, + scheduleFiber: Fiber.RuntimeFiber>, scope: Scope.Scope ): Channel.Channel>, unknown> => { const forkSink = pipe( diff --git a/packages/effect/src/internal/supervisor.ts b/packages/effect/src/internal/supervisor.ts index 3ab6ffd961..5c021715ee 100644 --- a/packages/effect/src/internal/supervisor.ts +++ b/packages/effect/src/internal/supervisor.ts @@ -43,24 +43,24 @@ export class ProxySupervisor implements Supervisor.Supervisor { context: Context.Context, effect: Effect.Effect, parent: Option.Option>, - fiber: Fiber.RuntimeFiber + fiber: Fiber.RuntimeFiber ): void { this.underlying.onStart(context, effect, parent, fiber) } - onEnd(value: Exit.Exit, fiber: Fiber.RuntimeFiber): void { + onEnd(value: Exit.Exit, fiber: Fiber.RuntimeFiber): void { this.underlying.onEnd(value, fiber) } - onEffect(fiber: Fiber.RuntimeFiber, effect: Effect.Effect): void { + onEffect(fiber: Fiber.RuntimeFiber, effect: Effect.Effect): void { this.underlying.onEffect(fiber, effect) } - onSuspend(fiber: Fiber.RuntimeFiber): void { + onSuspend(fiber: Fiber.RuntimeFiber): void { this.underlying.onSuspend(fiber) } - onResume(fiber: Fiber.RuntimeFiber): void { + onResume(fiber: Fiber.RuntimeFiber): void { this.underlying.onResume(fiber) } @@ -92,28 +92,28 @@ export class Zip implements Supervisor.Supervisor, effect: Effect.Effect, parent: Option.Option>, - fiber: Fiber.RuntimeFiber + fiber: Fiber.RuntimeFiber ): void { this.left.onStart(context, effect, parent, fiber) this.right.onStart(context, effect, parent, fiber) } - onEnd(value: Exit.Exit, fiber: Fiber.RuntimeFiber): void { + onEnd(value: Exit.Exit, fiber: Fiber.RuntimeFiber): void { this.left.onEnd(value, fiber) this.right.onEnd(value, fiber) } - onEffect(fiber: Fiber.RuntimeFiber, effect: Effect.Effect): void { + onEffect(fiber: Fiber.RuntimeFiber, effect: Effect.Effect): void { this.left.onEffect(fiber, effect) this.right.onEffect(fiber, effect) } - onSuspend(fiber: Fiber.RuntimeFiber): void { + onSuspend(fiber: Fiber.RuntimeFiber): void { this.left.onSuspend(fiber) this.right.onSuspend(fiber) } - onResume(fiber: Fiber.RuntimeFiber): void { + onResume(fiber: Fiber.RuntimeFiber): void { this.left.onResume(fiber) this.right.onResume(fiber) } @@ -145,24 +145,24 @@ export class Track implements Supervisor.Supervisor, _effect: Effect.Effect, _parent: Option.Option>, - fiber: Fiber.RuntimeFiber + fiber: Fiber.RuntimeFiber ): void { this.fibers.add(fiber) } - onEnd(_value: Exit.Exit, fiber: Fiber.RuntimeFiber): void { + onEnd(_value: Exit.Exit, fiber: Fiber.RuntimeFiber): void { this.fibers.delete(fiber) } - onEffect(_fiber: Fiber.RuntimeFiber, _effect: Effect.Effect): void { + onEffect(_fiber: Fiber.RuntimeFiber, _effect: Effect.Effect): void { // } - onSuspend(_fiber: Fiber.RuntimeFiber): void { + onSuspend(_fiber: Fiber.RuntimeFiber): void { // } - onResume(_fiber: Fiber.RuntimeFiber): void { + onResume(_fiber: Fiber.RuntimeFiber): void { // } @@ -176,7 +176,7 @@ export class Track implements Supervisor.Supervisor(execution: () => X, _fiber: Fiber.RuntimeFiber): X { + onRun(execution: () => X, _fiber: Fiber.RuntimeFiber): X { return execution() } } @@ -196,24 +196,24 @@ export class Const implements Supervisor.Supervisor { _context: Context.Context, _effect: Effect.Effect, _parent: Option.Option>, - _fiber: Fiber.RuntimeFiber + _fiber: Fiber.RuntimeFiber ): void { // } - onEnd(_value: Exit.Exit, _fiber: Fiber.RuntimeFiber): void { + onEnd(_value: Exit.Exit, _fiber: Fiber.RuntimeFiber): void { // } - onEffect(_fiber: Fiber.RuntimeFiber, _effect: Effect.Effect): void { + onEffect(_fiber: Fiber.RuntimeFiber, _effect: Effect.Effect): void { // } - onSuspend(_fiber: Fiber.RuntimeFiber): void { + onSuspend(_fiber: Fiber.RuntimeFiber): void { // } - onResume(_fiber: Fiber.RuntimeFiber): void { + onResume(_fiber: Fiber.RuntimeFiber): void { // } @@ -225,7 +225,7 @@ export class Const implements Supervisor.Supervisor { return new Zip(this, right) } - onRun(execution: () => X, _fiber: Fiber.RuntimeFiber): X { + onRun(execution: () => X, _fiber: Fiber.RuntimeFiber): X { return execution() } } @@ -244,24 +244,24 @@ class FibersIn implements Supervisor.Supervisor, _effect: Effect.Effect, _parent: Option.Option>, - fiber: Fiber.RuntimeFiber + fiber: Fiber.RuntimeFiber ): void { pipe(this.ref, MutableRef.set(pipe(MutableRef.get(this.ref), SortedSet.add(fiber)))) } - onEnd(_value: Exit.Exit, fiber: Fiber.RuntimeFiber): void { + onEnd(_value: Exit.Exit, fiber: Fiber.RuntimeFiber): void { pipe(this.ref, MutableRef.set(pipe(MutableRef.get(this.ref), SortedSet.remove(fiber)))) } - onEffect(_fiber: Fiber.RuntimeFiber, _effect: Effect.Effect): void { + onEffect(_fiber: Fiber.RuntimeFiber, _effect: Effect.Effect): void { // } - onSuspend(_fiber: Fiber.RuntimeFiber): void { + onSuspend(_fiber: Fiber.RuntimeFiber): void { // } - onResume(_fiber: Fiber.RuntimeFiber): void { + onResume(_fiber: Fiber.RuntimeFiber): void { // } @@ -275,7 +275,7 @@ class FibersIn implements Supervisor.Supervisor(execution: () => X, _fiber: Fiber.RuntimeFiber): X { + onRun(execution: () => X, _fiber: Fiber.RuntimeFiber): X { return execution() } }