Removes context parameter from instruction-scoped operations (#923)

We originally had a `context.Context` for anything that might be
traced, but it turned out to be only useful for lifecycle and host functions.

For instruction-scoped aspects like memory updates, a context parameter is too
fine-grained and also invisible in practice. For example, most users will use
the compiler engine, and its memory, global or table access will never use go's
context.

Signed-off-by: Adrian Cole <adrian@tetrate.io>
This commit is contained in:
Crypt Keeper
2022-12-14 16:08:07 +09:00
committed by GitHub
parent 0ed4002549
commit 126bd9050d
59 changed files with 526 additions and 578 deletions

View File

@@ -1,7 +1,5 @@
package sys
import "context"
// ClockResolution is a positive granularity of clock precision in
// nanoseconds. For example, if the resolution is 1us, this returns 1000.
//
@@ -11,14 +9,14 @@ import "context"
type ClockResolution uint32
// Walltime returns the current time in epoch seconds with a nanosecond fraction.
type Walltime func(context.Context) (sec int64, nsec int32)
type Walltime func() (sec int64, nsec int32)
// Nanotime returns nanoseconds since an arbitrary start point, used to measure
// elapsed time. This is sometimes referred to as a tick or monotonic time.
//
// Note: There are no constraints on the value return except that it
// increments. For example, -1 is a valid if the next value is >= 0.
type Nanotime func(context.Context) int64
type Nanotime func() int64
// Nanosleep puts the current goroutine to sleep for at least ns nanoseconds.
type Nanosleep func(ctx context.Context, ns int64)
type Nanosleep func(ns int64)