Posts

Adding RRPlugins (Loader) to LibRoadRunner

Finally, I finished removing 4412 bugs to 0 :D.  
I add a large codebase in roadrunner and I know there will be a lot of conflicts between them as they may do share common variables and similar files. I first started with modifying CMake files and then modified the source files such that there will be no conflict. But when I started building it is giving some error in windows files of windows software development kit which is strange since I am not using any system-dependent files. Then I found out that accidentally many variables between two projects get interlinked due to error-prone cmake lists. It was a hard time finding the bug. And there are no debuggers available for the build process so I have to go manually line by line and find out the problem. I wonder how patient developers from the nineties since at that there are no such high tech IDK and developers have to manually do most of the things. Anyway, I resolved the issue and will start my work with the wrapper part
Now my appr…

Provided all Libroadrunner functions to plugins using RoadRunner C API

We are completely driven by self-interest. In the last week, I realized that building everything from scratch will be reinventing the wheel and at some point in time we have to reuse someone else written code in our program. So, I thought to use rrplugins in my code and worked on how to remove the dependency of LibRoadRunner. As of now, I decided to provide plugins all roadrunner functions through a C API which is already built. Now the main problems lie in removing roadrunner dependency from the plugin loader. For which will discuss a solution with mentors tomorrow early morning. This week I understand some basic concepts which I missed in my class. The detailed difference between dynamic and static linking. A brief concept is in this link https://www.geeksforgeeks.org/difference-between-static-and-shared-libraries/
Also in this Wuhan Corona Virus pandemic time due to my university will conduct my end semester exams. So I will be not be working on this project from 12th to 29th an…

Building a plugin manager in libRoadRunner

Every effort we put in plan B is the effort we take away from plan A. 

The community bonding period is now coming to an end. I have used this community bonding period to make a demo application and base to work on. I have designed a platform-independent plugin manager. Also, the dynamic library can use host functionality. My mentor gives me an example and based on it I designed https://github.com/debashish05/PluginSystem. Also, I have introduced to all the members of the Sauro Lab. Then I deployed this plugin manager to the libRoadRunner. Meanwhile while covering some c++ concept I came across a channel which describes some key feature and basic c++ if you have time and interested you can check it out https://www.youtube.com/playlist?list=PLlrATfBNZ98dudnM48yfGUldqGD0S4FFb. I first thought of using the poco shared library to load plugin but then I decided to stick on functions provided by OS. Although it tough and then I have to take care of platform dependency.

Windows and Linux prov…

GSoC 2.0

"Never regret your past. Rather, embrace it as the teacher that it is."
I am very happy to say that I have been selected for GSoC for the project Developing an Optimization Library for libRoadRunner Link. Here is the link to my proposal. I am working on my last year's project and some major bugs. I have planned to publish a research paper with my mentor Herbert and Kiri on this project.  Now the community bonding period is started. But honestly, I don't need this since I have bonded with the community last year so will just jump right into the work. I will keep on updating this project here.  Stay Safe in this COVID 19 pandemic. Have a good day.

Submission of the project

The journey of a thousand miles begins with a single step.
I submitted the report https://gist.github.com/debashish05/82564fc7aee5130fbca9997c55681e14 along with the code and filed the last evaluation details. It has been an amazing journey for me. Starting from discussing the project with the mentor before GSoC and ending it. In this journey, my mentor and my co-mentor both played a vital role in the progress of the project. It's a very nice experience for me and most important a huge learning comes along with GSoC too. I learned evolutionary algorithm, cmake, swig, windows development environment and a lot more. I found that I need to revisit c++ some concepts again. I would like to thanks my mentor and my co-mentor for their support. I will keep contributing to the libRoadRunner and definitely, it's not the end of my open-source journey, in fact, it's the start of my open source journey. Best of Luck to all.

Differential Evolution and RRPlugins C API

Sorting out life in O(1) is luck. In this week I have added support of Differential Evolution. So, I am left with the swig wrapper problem for the last week. But the build of Travis CI is failing due to some error in uniform real number generation. Also, there is some build problem with Travis CI with RRPlugins C API. To be specific there is some lapack issue. I have referred these two links https://en.wikipedia.org/wiki/Differential_evolution and http://www1.icsi.berkeley.edu/~storn/code.html#c++c for the differential evolution part. For the RRPlugins C API, I have used pre-existing API from rrplugins (https://github.com/sys-bio/rrplugins/tree/master/wrappers/C).
In this ultimate final week, I will first finish off with the documentation part first and then figure out with wrapper problem. I am looking forward to merging these changes to the main repository. Also, have to present all my hard work this summer. Looking forward to wrapping up the project quickly.

Finishing of with the cmake part and added support of beta plugins

In this week I have finalized the complete cmake part. So, now there is a separate option in cmake to build ONLY plugins not roadrunner and we can choose upon all available plugins provided we installed roadrunner once. Also merged the beta plugins. Now only the wrapper and testing part is left along with differential evolution optimizer. For the optimizer, I am going to implement https://en.wikipedia.org/wiki/Differential_evolution algorithm.
Since college started I am not able to give the proper time to the project, but, I am sure will finish the project soon before 19th. In this week will try to finish off the wrapper part to get a beautiful scenario of the work I did in the GSoC till now.