plutus-core-1.30.0.0: Language library for Plutus Core
Safe HaskellSafe-Inferred
LanguageHaskell2010

PlutusCore.Version

Synopsis

Documentation

data Version Source #

The version of Plutus Core used by this program.

The intention is to convey different levels of backwards compatibility for existing scripts: - Major version changes are backwards-incompatible - Minor version changes are backwards-compatible - Patch version changes should be entirely invisible (and we will likely not use this level)

The version used should be changed only when the language itself changes. For example, adding a new kind of term to the language would require a minor version bump; removing a kind of term would require a major version bump.

Similarly, changing the semantics of the language will require a version bump, typically a major one. This is the main reason why the version is actually tracked in the AST: we can have two language versions with identical ASTs but different semantics, so we need to track the version explicitly.

Compatibility is about compatibility for specific scripts, not about e.g. tools which consume scripts. Adding a new kind of term does not change how existing scripts behave, but does change what tools would need to do to process scripts.

Instances

Instances details
Generic Version Source # 
Instance details

Defined in PlutusCore.Version

Associated Types

type Rep VersionTypeType Source #

Methods

fromVersionRep Version x Source #

toRep Version x → Version Source #

Show Version Source # 
Instance details

Defined in PlutusCore.Version

NFData Version Source # 
Instance details

Defined in PlutusCore.Version

Methods

rnfVersion → () Source #

Flat Version 
Instance details

Defined in PlutusCore.Flat

Methods

encodeVersion → Encoding

decode ∷ Get Version

sizeVersion → NumBits → NumBits

Eq Version Source # 
Instance details

Defined in PlutusCore.Version

Methods

(==)VersionVersionBool Source #

(/=)VersionVersionBool Source #

Ord Version Source # 
Instance details

Defined in PlutusCore.Version

Hashable Version Source # 
Instance details

Defined in PlutusCore.Version

Methods

hashWithSaltIntVersionInt

hashVersionInt

Pretty Version Source # 
Instance details

Defined in PlutusCore.Version

Methods

prettyVersionDoc ann #

prettyList ∷ [Version] → Doc ann #

type Rep Version Source # 
Instance details

Defined in PlutusCore.Version

type Rep Version = D1 ('MetaData "Version" "PlutusCore.Version" "plutus-core-1.30.0.0-inplace" 'False) (C1 ('MetaCons "Version" 'PrefixI 'True) (S1 ('MetaSel ('Just "_versionMajor") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Natural) :*: (S1 ('MetaSel ('Just "_versionMinor") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Natural) :*: S1 ('MetaSel ('Just "_versionPatch") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Natural))))

plcVersion100Version Source #

Plutus Core version 1.0.0

plcVersion110Version Source #

Plutus Core version 1.1.0

firstVersionVersion Source #

The first version of Plutus Core supported by this library.

latestVersionVersion Source #

The latest version of Plutus Core supported by this library.

knownVersions ∷ Set Version Source #

The set of versions that are "known", i.e. that have been released and have actual differences associated with them.