-
Notifications
You must be signed in to change notification settings - Fork 5.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
C-API design survey #955
Comments
赞 @jacquesqiao 的比较结果。对我们的API设计启发很大呀! 有几个细节问题:
|
@wangkuiyi #define API_BEGIN() try {
#define API_END() } catch(dmlc::Error &_except_) { return MXAPIHandleException(_except_); } return 0; 2,对的。对api的直接封装是官方手写的,相当于手写了swig封装的部分,对用户提供的api是封装之后的,所以用户无需关心这个部分。我们也是类似的方式,底层的c_api需要封装之后,对外提供python风格的接口。 |
还有一个问题:struct 我见到很多error的实现(包括Objective-C里的标准error实现)都是一个字符串加一个code,但是实际上两者的内容重复,而且很不容易分配code。 我注意到在Go语言里定义了一种特殊的类型 |
使用const char* 返回错误挺好的。 |
status这个部分我可以去了解一下,实际上对于mxnet,code只有两个,一个是0,代表正常,一个是-1,代表有异常。 |
* update paddle-mobile doc * delete untracked file * add install appendix * add install appendix * add install appendix * add install appendix
Update README.md
下面是对tensorflow和mxnet的api设计做了一些调研的结论。
共同点:
不同点:
经过一些讨论得到的结论(#849):
实现细节。
TF封装API的完整demo。
mxnet封装demo
接口实现在c_api.cc中。用API_BEGIN() 开始,用 API_END() 结束。实际上是使用了try catch。返回值是int,0代表正常,非0代表有异常。
接口实现在 c_api.cc中。
The text was updated successfully, but these errors were encountered: