These are chat archives for symengine/symengine

22nd
Aug 2015
Isuru Fernando
@isuruf
Aug 22 2015 07:16
@mschubert, not yet. You can make use of .args to arrive at a solution in python for now. (It'll obviously be slow than implementing in C++)
Isuru Fernando
@isuruf
Aug 22 2015 15:08

@certik,
When we are packaging using gem build symengine.gemspec, all the files needed for the gem are put into an archive. When gem install symengine-0.0.1.gem is given, the archive is extracted to the gems install directory and then if there is a extconf.rb, it is executed to build the package.

To mirror what we do with setup.py, we have to move Gemfile, symengine.gemspec to root and add a extconf.rb to the root as well. Also, ruby wrappers need to be copied to the root via CMake as well. This method is quite hackish, but can be done, although for people who are familiar with ruby may find it hard to understand.

Is this okay? or should we separate the ruby wrappers?

Ondřej Čertík
@certik
Aug 22 2015 16:28
@isuruf I need to think about this. I'll get back to you tonight.
Isuru Fernando
@isuruf
Aug 22 2015 16:31
okay
Btw, above branch is a solution without changing the file structure
gem build symengine/ruby/symengine.gemspec will package the files.
gem install symengine-0.1.0.gem --verbose will install libsymengine and the wrapper
Ondřej Čertík
@certik
Aug 22 2015 16:44
@mschubert we plan to add it, @pbrady requested it as well, I just didn't get to it yet.
@mschubert we have the initial C++ implementation here: https://github.com/sympy/symengine/blob/c91ac369cb6cac4fea3ec7d9d23ba8fcf94227ff/symengine/visitor.h#L90, but it needs to be finished, and then wrapped in Python.
Isuru Fernando
@isuruf
Aug 22 2015 17:31
@certik, I pushed commits to my fork's ruby branch and fixed the travis tests as well.
Abinash Meher
@abinashmeher999
Aug 22 2015 19:39
@isuruf If I understand it correctly, you are trying to build both libsymengine and symengine.so with extconf.rb. Are you calling cmake from extconf.rb? If yes, would there be a problem if the user doesn't have cmake installed(is it possible)?
I am worried that some of the users have already expressed concern about develping the wrappers in the main repo. I am apprehensive that the suggested method, while being ingenious, might make the process "more cumbersome" to some ruby developers.
Can we have different repo for ruby wrappers and have the actual source for libsymengine as a submodule in the gem? After that, IMHO this procedure will be a lot more clean.