Skip to content

Releases: OpShin/opshin

0.22.0

19 Jul 19:59
Compare
Choose a tag to compare

What's Changed

🏕 Features

👒 Dependencies

New Contributors

Full Changelog: 0.21.2...0.22.0

0.21.2

03 Jul 19:33
Compare
Choose a tag to compare

Full Changelog: 0.21.1...0.21.2

0.21.1

15 Apr 11:28
Compare
Choose a tag to compare

What's Changed

🐛 Bug fixes

  • Fix optimization levels not being applied properly, resulting in exceedingly large contracts. 9da7eb0

🏕 Features

Full Changelog: 0.21.0...0.21.1

0.21.0

03 Apr 08:06
Compare
Choose a tag to compare

What's Changed

Most notably, OpShin does now support passing in optimization settings from -O0 (no optimizations, just debugging) to -O3 (aggressive optimization, does not preserve semantics wrt. traces, i.e. removes logging and error reporting in certain places).

🐛 Bug fixes

  • Fix actually invalid generated negative constr id code by @nielstron in #361

🏕 Features

Full Changelog: 0.20.0...0.21.0

0.20.0

09 Feb 15:12
Compare
Choose a tag to compare

This is the first version compatible with pycardano 0.10.0

What's Changed

🏕 Features

  • Fix compiler bug that allows compiling access to class attributes by @nielstron in #329
  • Add support for pycardano 0.10.0 by @nielstron in #334

👒 Dependencies

Full Changelog: 0.19.1...0.20.0

0.19.1

04 Feb 15:04
Compare
Choose a tag to compare

What's Changed

🏕 Features

🐛 Bug fixes

There was a bug in the type system that would match union type in function parameters in the wrong direction. I.e. if a function expects Union[A, B], the type system would accept a parameter of type Union[A, B, C] but not of type Union[A]. This has now been fixed.

Moreover there was a bug regarding the creation of functions in branches and merging their type definitions which would allow incorrectly typed bound variables inside the functions. I.e. both functions foo in an if/else branch bind the variable x also defined in the same branch. However one x is defined as A and one as B. Hence one foo function would expect A and one would expect B, whereas the type after merging was Union[A, B] and would allow assigning an incorrect value to x.

Finally a bug regarding the re-assignment of polymorphic functions was fixed. If a function decided to re-assign polymorphic functions such as print, the invocation of this function would fail during runtime.

All of the above bugs can only lead to funds being locked in Smart Contracts (due to the contract failing) and not invalid release of funds.

👒 Dependencies

Full Changelog: 0.19.0...0.19.1

0.19.0

09 Jan 22:09
99dcb69
Compare
Choose a tag to compare

Moving to this minor version is greatly recommended, since contract sizes and costs are likely to experience 70% decrease or more due to #297

What's Changed

🏕 Features

🐛 Bug Fixes

  • Disallow retyping of variables to incompatible types by @nielstron in #298
    • This patches a slip-through in the typechecker where a function could capture variables of invalid type.

💔 Breaking Changes

Retyping of variables is now allowed anymore (categorically) since #298 . Assertions on a variable type will still factually change the type but can only narrow down the type (thus compatible with the previously declared type) and are hence still allowed.

👒 Dependencies

Full Changelog: 0.18.1...0.19.0

0.18.1

01 Nov 00:52
Compare
Choose a tag to compare

What's Changed

🏕 Features

Full Changelog: 0.18.0...0.18.1

0.18.0

29 Oct 22:11
Compare
Choose a tag to compare

What's Changed

🏕 Features

👒 Dependencies

Full Changelog: 0.17.0...0.18.0

0.17.0

12 Sep 13:12
Compare
Choose a tag to compare

What's Changed

🐛 Bugfixes

🏕 Features

  • Comparison chaning is now supported by @nielstron in #238
  • When forcing three parameters, the datum must be potentially of type Nothing by @nielstron in #239
  • Introduce a function that copies an object structurally by @nielstron in #246
  • Implement integrity check for lists and dicts by @nielstron in #250

👒 Dependencies

Full Changelog: 0.16.2...0.17.0