Skip to content
GitLab
    • GitLab: the DevOps platform
    • Explore GitLab
    • Install GitLab
    • How GitLab compares
    • Get started
    • GitLab docs
    • GitLab Learn
  • Pricing
  • Talk to an expert
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
    • Switch to GitLab Next
    Projects Groups Snippets
  • Sign up now
  • Login
  • Sign in / Register
  • tezos tezos
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 138
    • Issues 138
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 30
    • Merge requests 30
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Package Registry
    • Container Registry
    • Infrastructure Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • MetastateMetastate
  • tezostezos
  • Merge requests
  • !54

Protocol/Michelson: UNPAIR instruction

  • Review changes

  • Download
  • Email patches
  • Plain diff
Merged Raphaël Cauderlier requested to merge rafoo@unpair into proto-proposal Feb 03, 2020
  • Overview 29
  • Commits 7
  • Pipelines 17
  • Changes 153

This MR adds an UNPAIR instruction that behaves as the current UNPAIR macro.

Motivations for doing it:

  • the UNPAIR macro is very widely used, promoting it as an instruction diminishes its gas cost which profits almost all contracts (this was the purpose of the incorrect implementation of the peephole optimisation that Carthage removes)
  • providing an alternative to the CAR and CDR instructions seems required for linear typing; a feature that might be desirable for value stamping (see https://forum.tezosagora.org/t/contract-signatures/1458). Note however that linear alternatives to GET and UPDATE should also be added.

Because of the ubiquitous use of the UNPAIR macro in the testsuite, the difference in the regression log is unfortunately too big to be checked by a human reviewer.

Edited Apr 02, 2020 by Raphaël Cauderlier
Assignee
Assign to
Reviewers
Request review from
Time tracking
Source branch: rafoo@unpair