8000 Changes for 0.5 · Issue #486 · chalk-lab/Mooncake.jl · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content
Changes for 0.5 #486
Open
Open
@willtebbutt

Description

@willtebbutt

There are a couple of changes that I want to make that are breaking. In particular,

  1. use Config directly in build_rrule, prepare_gradient_cache, and prepare_pullback_cache, etc, rather than passing in kwargs, and
  2. redesign prepare_pullback_cache and value_and_pullback!! so that they're possible to use without requiring a call to zero_tangent.

This will bring immediately advantages to DI's interface with Mooncake. For example, if we add fields to Config (in a non-breaking way), DI won't need to change to support them. It should also reduce the amount of kwargs... expressions floating around in the Mooncake codebase, which can only be a good thing. Moreover, the change to prepare_pullback_cache and value_and_pullback!! ought to ensure that DI only needs to use these two functions + Mooncake.Config (i.e. what we're calling the public interface), and not anything else.

Technically non-breaking changes I plan include:

  1. removing "convenience" methods of build_rrule. I'm anticipating that all users should generally be using prepare_{gradient,pullback}_cache, so the convenience methods are redundant. If people need to use this (internal) function, they will obviously still be able to.
  2. Separating uses of CoDual into distinct types #275 , which is very breaking.

I expect to add to this list before actually making the release.

If anyone happens to know of any unsatisfactory bits of Mooncake which, whether technically breaking or just "probably disruptive to someone", ought to go into 0.5, please feel free to mention them here!

Metadata

Metadata

Assignees

No one assigned

    Labels

    questionFurther information is requested

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

      0