apache / mxnet

Lightweight, Portable, Flexible Distributed/Mobile Deep Learning with Dynamic, Mutation-aware Dataflow Dep Scheduler; for Python, R, Julia, Scala, Go, Javascript and more
https://mxnet.apache.org
Apache License 2.0
20.77k stars 6.8k forks source link

incorrect doxygen generated C++ class which has template #13518

Open zhaoyao73 opened 5 years ago

zhaoyao73 commented 5 years ago

https://mxnet.incubator.apache.org/architecture/overview.html

Issue 1: the "std::function(RunContext)> SyncFn" should be "std::function<void(RunContext)> SyncFn" and AsyncFn is similar.

Looks like the "eval_rst" or doxygenclass is doing something wrong.

a copy from the overview.html: " class Engine Dependency engine that schedules operations.

Public Types

typedef engine::CallbackOnComplete CallbackOnComplete callback on complete

typedef std::function(RunContext)> SyncFn Synchronous operation to pass to engine.

typedef std::function(RunContext, CallbackOnComplete)> AsyncFn Asynchronous operation to pass to engine. "

Issue 2: CallbackOnComplete CreateCallback(void (callback)(Engine , void *), *void param, )**

Not sure why the "void *param," there is "," there.

lanking520 commented 5 years ago

@zhaoyao73 Thanks for reporting this to us. @aaronmarkham could you please take a look?

aaronmarkham commented 5 years ago

Adding some notes as it took me a bit to even see the problem... The area that is having an issue is the API Reference section that is autogenerated with the following Sphinx directive:

    .. doxygenclass:: mxnet::Engine
       :members:

Issue 1: Look at the entry after this one: https://mxnet.incubator.apache.org/architecture/overview.html#_CPPv2N5mxnet6Engine18CallbackOnCompleteE Interesting how the two functions that a reported as wrong don't have permalinks, whereas the other do...

Issue 2: https://mxnet.incubator.apache.org/architecture/overview.html#_CPPv2N5mxnet6Engine14CreateCallbackEPFvP6EnginePvEPv

I'm not familiar enough with what it should look like, but maybe @leleamol can help out since he's most recently been tinkering with Doxygen and the CPP package.