Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
    • Switch to GitLab Next
  • Sign in / Register
D
data-encoding
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
    • Locked Files
  • Issues 18
    • Issues 18
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
    • Iterations
  • Merge requests 6
    • Merge requests 6
  • Requirements
    • Requirements
    • List
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
    • Test Cases
  • Operations
    • Operations
    • Incidents
    • Environments
  • Packages & Registries
    • Packages & Registries
    • Package Registry
    • Container Registry
  • Analytics
    • Analytics
    • CI/CD
    • Code Review
    • Insights
    • Issue
    • Repository
    • Value Stream
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Members
    • Members
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • Nomadic Labs
  • data-encoding
  • Merge requests
  • !23

Merged
Created Jan 06, 2021 by Yann Regis-Gianas@yrgDeveloper

Memoize fix applications in Mu

  • Overview 32
  • Commits 11
  • Pipelines 16
  • Changes 4

Each time a recursive value of encoding Mu fix is decoded, fix is applied. That's an important source of inefficiency, especially when we encode algebraic datatypes. Indeed, if the encoding is built using mu (fun self -> union [case 1 .. self ..; ...; case N .. self ..] the check_cases function is called each time we encode and decode a recursive value!

The following MR introduces a basic in-place memorization of fix inside Mu.

Edited Jan 08, 2021 by Yann Regis-Gianas
Assignee
Assign to
Reviewer
Request review from
None
Milestone
None
Assign milestone
Time tracking
Source branch: yrg@optimize-mu