Skip to content

Instantly share code, notes, and snippets.

@yenchenlin
Last active August 29, 2016 14:05
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save yenchenlin/5ccf2029de32320096b79eb9de4d95c3 to your computer and use it in GitHub Desktop.
Save yenchenlin/5ccf2029de32320096b79eb9de4d95c3 to your computer and use it in GitHub Desktop.
GSoC Work Product of Yen-Chen Lin

Merged Works

Works in Progress

  • #6540 Add ensemble selection algorithm
    • Implement main algorithm
    • Add example code
    • Determine API
    • Add tests
    • Detail documentation
  • Make Neighbor Tree support Cython fused types
    • Find workaround to use void* attributes as fused types variables
    • Make code support fused types
    • Add tests
  • Make multitask enet support Cython fused types
    • Make code support fused types
    • Add tests

Blog Posts

Development Log

See here for my detailed day by day development progress.

Cython Fused Types Limitation

  • Doesn't work with class inheritance. See bug report here.
  • Not supported as attributes of extension types.
  • When having fused type arguments in extension class method, you cannot have default value arguments in the same method. See bug report here.
  • Can be used to declare local variable of funtion if and only if any argument of function is of that fused type.

State of other fused types projects

  • Sequential Dataset (SAG, SGD) - It seems to involve inheritance, which is known to not work with Cython fused types. See detailed analysis here.
  • Neighbor Tree - I've found a workaround to use fused types class attributes (see this blog post), but still not completely make binary_tree.pxi support fused types. Both BallTree and KDTree can be modified to support fused types after that.

Misc

Some pharases I learned from my mentor:

  • Lead someone down the garden path: Deceive someone.
  • Whatever floats your boat: Do whatever you like.
  • Getting things out the door: Getting things signed, sealed, delivered.
@jnothman
Copy link

Usually one leads someone up the garden path. And I suggest you be cautious about using "whatever floats your boat"; it's very casual, and sometimes dismissive. :) I should probably look through the rest of this...

@jnothman
Copy link

Regarding

When having fused type arguments in extension class method, you cannot have default value arguments in the same method. See bug example here.

Has this been reported to Cython? Please do so if it has not been. Worst they can do is clarify your error or identify it as a duplicate.

@jnothman
Copy link

You can then emphasise that this is also a contribution of yours to the Python community.

@jnothman
Copy link

I would appreciate a bit more detail on what held up "but still not completely make binary_tree.pxi support fused types." or whether it was just paused due to frustration.

@yenchenlin
Copy link
Author

I've submitted the bug of Cython to its Github repo, see issue here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment