Skip to content
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

Discussion for API and implementation of the go wrapper #1

Open
pavanky opened this issue Sep 24, 2015 · 5 comments
Open

Discussion for API and implementation of the go wrapper #1

pavanky opened this issue Sep 24, 2015 · 5 comments

Comments

@pavanky
Copy link
Member

pavanky commented Sep 24, 2015

Use cgo to bind the C API:
https://golang.org/cmd/cgo/

Needs more discussion.

@pavanky
Copy link
Member Author

pavanky commented Sep 26, 2015

@rabarar We already have a functional C API for all functions in ArrayFire. You can perhaps look at https://github.com/arrayfire/arrayfire-python and https://github.com/arrayfire/arrayfire-rust wrappers to see how the C functions are being called from the respective languages.

I foresee something similar happening in go as well.

@rabarar
Copy link
Contributor

rabarar commented Sep 26, 2015

Perfect - I'll start there.

On Sep 25, 2015, at 11:03 PM, Pavan Yalamanchili [email protected] wrote:

@rabarar We already have a functional C API for all functions in ArrayFire. You can perhaps look at https://github.com/arrayfire/arrayfire-python and https://github.com/arrayfire/arrayfire-rust wrappers to see how the C functions are being called from the respective languages.

I foresee something similar happening in go as well.


Reply to this email directly or view it on GitHub.

@rabarar
Copy link
Contributor

rabarar commented Sep 27, 2015

Okay, correct me if I'm wrong, but it appears that I can build mappings between the calls in the ./src/api/unified directory and I should have a full coverage of the api? Correct?

Take a look at the repo src/arrayfire/*.go and you'll see the beginning of a mapping. If you think this is the way to go, I'll continue to build out the mapping and we should have something to play with. I'm going to pause here unit you give me feedback.

@pavanky
Copy link
Member Author

pavanky commented Sep 27, 2015

@rabarar The easier way to do this is to look at the bottom half functions in every header file in arrayfire/include/af/ after the section extern "C" {

@pavanky
Copy link
Member Author

pavanky commented Sep 27, 2015

The structure you have so far looks good, but the one thing I am concerned about is users doing something like this (if the API allows it)

x := randu(2, 3)
y := randu(2, 3)
x = add(x, y) // This will leak memory

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants