Documentation ¶
Overview ¶
Package herdstyle contains backends that c4f in a similar way to the Herd memory simulator.
Herd is a de facto standard in the area of concurrency exploration, so various tools have the same flow, which has the following characteristics:
- Is an external, third-party tool running on the local machine, largely communicated with by command-line flags;
- Accepts Litmus tests (different tools accept different architectures, possibly including C);
- Outputs observations to stdout in a loosely standard format (handled by the parser package);
- Generally run standalone, though some tools may support lifting to executables.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Backend ¶
type Backend struct {
// contains filtered or unexported fields
}
Backend represents instantiated herd-style backends.
type BackendImpl ¶
type BackendImpl interface { // LiftStandalone runs the lifter job j using x and the run information in r, expecting it to output the // results into w. LiftStandalone(ctx context.Context, j backend2.LiftJob, r service.RunInfo, x service.Runner, w io.Writer) error // LiftExe runs the lifter job j using x and the run information in r, expecting an executable. LiftExe(ctx context.Context, j backend2.LiftJob, r service.RunInfo, x service.Runner) error parser.Impl }
BackendImpl describes the functionality that differs between Herdtools-style backends.
type Class ¶
type Class struct { // OptCapabilities contains the capability flags for this backend not implied by being a herdstyle backend. OptCapabilities backend2.Capability // Arches describes the architectures of Litmus test this backend can deal with. Arches []id.ID service.ExtClass // Impl provides parts of the Backend backend setup that differ between the various tools. Impl BackendImpl }
Class represents a class of herd-style backends such as Herd and Litmus.
func (Class) Instantiate ¶
Instantiate overrides the run info in this backend, and returns a new backend in an interface wrapper.
Directories ¶
Path | Synopsis |
---|---|
Package herd contains the parts of a Herdtools backend specific to herd7.
|
Package herd contains the parts of a Herdtools backend specific to herd7. |
Package litmus contains the parts of a Herdtools backend specific to litmus7.
|
Package litmus contains the parts of a Herdtools backend specific to litmus7. |
Package parser contains logic for parsing Herd-style observations.
|
Package parser contains logic for parsing Herd-style observations. |
Package rmem implements rudimentary backend support for RMEM.
|
Package rmem implements rudimentary backend support for RMEM. |