Skip to content

Commit

Permalink
Merge pull request #99 from Plutonomicon/staging
Browse files Browse the repository at this point in the history
Staging
  • Loading branch information
L-as authored Jan 27, 2022
2 parents 7f47e88 + 0e08a41 commit d753dc3
Show file tree
Hide file tree
Showing 70 changed files with 6,254 additions and 1,226 deletions.
208 changes: 208 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,213 @@
# Revision history for plutarch

# 1.1.0

- General repository changes.
- The Plutarch repo has moved to GHC 9.2.1. Projects using GHC 8.10.7 should still be able to depend on Plutarch. There is CI in place to ensure compatibility.

Relevant PR: [#86](https://github.com/Plutonomicon/plutarch/pull/86)

CI added by: [#188](https://github.com/Plutonomicon/plutarch/pull/188)
- Major nix updates.

Started by: [#75](https://github.com/Plutonomicon/plutarch/pull/75)
- Benchmarks and perf diffing on PRs to keep track of performance regressions.

Worked on through:
* [#102](https://github.com/Plutonomicon/plutarch/pull/102)
* [#144](https://github.com/Plutonomicon/plutarch/pull/144)
* [#146](https://github.com/Plutonomicon/plutarch/pull/146)
* [#164](https://github.com/Plutonomicon/plutarch/pull/164)
* [#167](https://github.com/Plutonomicon/plutarch/pull/167)
* [#178](https://github.com/Plutonomicon/plutarch/pull/178)

- Significantly improve `plam` type inference - works seamlessly now (!!!)

Worked on through:
* [#29](https://github.com/Plutonomicon/plutarch/pull/29)
* [#149](https://github.com/Plutonomicon/plutarch/pull/149)
* [#162](https://github.com/Plutonomicon/plutarch/pull/162)
* [#168](https://github.com/Plutonomicon/plutarch/pull/168)
* [#170](https://github.com/Plutonomicon/plutarch/pull/170)

Relevant issue: [#2](https://github.com/Plutonomicon/plutarch/issues/2)
- Many, many optimizations on generated code.

Worked on through:
* [#34](https://github.com/Plutonomicon/plutarch/pull/34)
* [#37](https://github.com/Plutonomicon/plutarch/pull/37)
* [#42](https://github.com/Plutonomicon/plutarch/pull/42)
* [#44](https://github.com/Plutonomicon/plutarch/pull/44)
- Add haddocks and examples to many functions

Started by: [#49](https://github.com/Plutonomicon/plutarch/pull/49)
- Add many new utility functions, instances, and builtin function synonyms.

<details>
<summary> Breakdown of additions </summary>

- Boolean utilities:- `pnot`, `#&&`/`pand`/`pand'`, `#||`/`por`/`por'`

Module: `Plutarch.Bool`

Added in: [#30](https://github.com/Plutonomicon/plutarch/pull/30)
- ByteString utilities:- `pconsBS`, `psliceBS`, `plengthBS`, `pindexBS`

Module: `Plutarch.ByteString`

Added in: [#30](https://github.com/Plutonomicon/plutarch/pull/30)
- Cryptographic hashing utilities:- `psha2_256`, `psha3_256`, `pblake2b_256`, `pverifySignature`

Module: `Plutarch.Crypto`

Added in: [#30](https://github.com/Plutonomicon/plutarch/pull/30)
- `PEq`, `POrd`, `Semigroup`, and `Monoid` instances for `PUnit`

Module: `Plutarch.Unit`

Added in: [#30](https://github.com/Plutonomicon/plutarch/pull/30)
- UTF-8 encode/decode functions:- `pencodeUtf8`, `pdecodeUtf8`

Module: `Plutarch.String`

Added in: [#30](https://github.com/Plutonomicon/plutarch/pull/30)
- `PIntegral` typeclass

Module: `Plutarch.Integer`

Added in: [#30](https://github.com/Plutonomicon/plutarch/pull/30)
- `PIntegral` instance for `PInteger`

Module: `Plutarch.Integer`

Added in: [#30](https://github.com/Plutonomicon/plutarch/pull/30)
- `PEq` instance for `PData` and `PAsData`

Module: `Plutarch.Builtin`

Added in: [#38](https://github.com/Plutonomicon/plutarch/pull/38)
- Tracing functions:- `ptrace`, `ptraceIfFalse`, `ptraceIfTrue`, `ptraceError`

Module: `Plutarch.Trace`

Added in: [#39](https://github.com/Plutonomicon/plutarch/pull/39)
- Builtin pair construction utility:- `ppairDataBuiltin `

Module: `Plutarch.Builtin`

Added in: [#50](https://github.com/Plutonomicon/plutarch/pull/50)
- *Loads* of awesome list utilities thanks to [#63](https://github.com/Plutonomicon/plutarch/pull/63)!

Module: `Plutarch.List`
- `PIsData` instance for `PBool`

Module: `Plutarch.Builtin`

Added in: [#110](https://github.com/Plutonomicon/plutarch/pull/110)

</details>
- Add `PIsData` for conversion between normal builtin types and their `Data` representation.

Initially added in: [#31](https://github.com/Plutonomicon/plutarch/pull/31)
- Add `PAsData` for preserving more type information regarding `Data` encoded values.

Initially added in: [#31](https://github.com/Plutonomicon/plutarch/pull/31)
- Add `PDataRepr` and related machinery to ergonomically work with `Constr` encoded data.

There are also **generic derivers** (!!) to implement the related typeclasses for custom data types.

Module: `Plutarch.DataRepr`

Worked on through
* [#31](https://github.com/Plutonomicon/plutarch/pull/31)
* [#169](https://github.com/Plutonomicon/plutarch/pull/169)
* [#173](https://github.com/Plutonomicon/plutarch/pull/173)
* [#176](https://github.com/Plutonomicon/plutarch/pull/176)
* [#171](https://github.com/Plutonomicon/plutarch/pull/171)
* [#185](https://github.com/Plutonomicon/plutarch/pull/185)
- Add `PLift` and `PConstant` - enabling conversion between Plutarch terms and Haskell types.

This comes with convenient derivers. See the relevant section on the guide.

Module: `Plutarch.Lift`; another deriver within `Plutarch.DataRepr.Internal`

Worked on through
* [#62](https://github.com/Plutonomicon/plutarch/pull/62)
* [#109](https://github.com/Plutonomicon/plutarch/pull/109)
* [#130](https://github.com/Plutonomicon/plutarch/pull/130)
- Deprecate `punsafeConstant`. Use `pconstant` instead!
- Add `PIsList` & `PList` + instances for `PBuiltinList` - ergonomic list functions for all!

Module: `Plutarch.List`; another instance in `Plutarch.Builtin`

Added in: [#63](https://github.com/Plutonomicon/plutarch/pull/63)
- Mutually recursive data types, scott encoded records and more provided by `Plutarch.Rec`!

Module: `Plutarch.Rec`

Worked on through:
* [#60](https://github.com/Plutonomicon/plutarch/pull/60)
* [#114](https://github.com/Plutonomicon/plutarch/pull/114)
* [#125](https://github.com/Plutonomicon/plutarch/pull/125)
* [#175](https://github.com/Plutonomicon/plutarch/pull/175)
- The Plutus V1 ledger api types implemented in Plutarch!

Module: `Plutarch.Api.V1`

Worked on through:
* [#66](https://github.com/Plutonomicon/plutarch/pull/66)
* [#130](https://github.com/Plutonomicon/plutarch/pull/130)
* [#151](https://github.com/Plutonomicon/plutarch/pull/151)
* [#161](https://github.com/Plutonomicon/plutarch/pull/161)
* [#163](https://github.com/Plutonomicon/plutarch/pull/163)
* [#173](https://github.com/Plutonomicon/plutarch/pull/173)
- Implement Plutarch rational type.

Module: `Plutarch.Rational`

Added in: [#89](https://github.com/Plutonomicon/plutarch/pull/89)
- The `s` in `Term s _` has a fixed kind now. `data S`, `s :: S`

Module: `Plutarch.Internal`

Added in: [#115](https://github.com/Plutonomicon/plutarch/pull/115/files)
- Add `PType`, a synonym to `S -> Type` - i.e the kind of Plutarch types. In particular, the kind of the 3rd type parameter of `Term`.

Module: `Plutarch.Internal`

Added in: [#115](https://github.com/Plutonomicon/plutarch/pull/115/files)
- Convenient do syntax with `QualifiedDo` (!!!)

Module: `Plutarch.Monadic`

Added in: [#119](https://github.com/Plutonomicon/plutarch/pull/119)
- Add `DerivePNewtype` to derive common typeclasses for Plutarch newtypes.

Module: `Plutarch`; `Plutarch.Builtin`; `Plutarch.Bool`; `Plutarch.Integer`

Added in: [#151](https://github.com/Plutonomicon/plutarch/pull/151)
- A whole lot more exports from `Plutarch.Prelude`

Module: `Plutarch.Prelude`

Added in: [#181](https://github.com/Plutonomicon/plutarch/pull/181)
- Move out `punsafe*` functions from `Plutarch` and into `Plutarch.Unsafe`.
- Add generic deriving for `PlutusType` with scott encoding representation.

Added in: [#189](https://github.com/Plutonomicon/plutarch/pull/189)

Thanks to:
- @blamario
- @emiflake
- @Geometer1729
- @kozross
- @L-as
- @MatthewCroughan
- @sergesku
- @srid
- @t1lde
- @TotallyNotChase

# 1.0.0

Somewhat stable release
Loading

0 comments on commit d753dc3

Please sign in to comment.