Karthik Senthil     About     Resume

[GSoC 2016] Backtrack bug solved

This post is to update about the current status of work in ruby_curry as part of GSoC 2016.

As mentioned in my previous post, I spent the last few days looking into options for the “translator” system and fixing the “backtracking” feature.

With respect to the solving the “backtrack” bug, I had to initially provide support for CHOICE in the frontend of ruby_curry. There were some issues regarding deep cloning(using Marshal.dump) while implementing this, which in fact taught me more about simpleton objects in Ruby. After adding support, I decided to test it with a slightly complex permute example. The parsing passed but the output produced by the object code was incorrect due to the backtrack bug.

To solve the bug, I wrote down a simpler simple_choice example. And by using the stack trace and logging features I identified the problem to lie in assigning an unnecessary global variable :P

That solved the problem and I added a corresponding test case for future reference.

Regarding implementation of the “translator” system, I am speculating into using an existing library. More details about this will be updated after discussions with my mentor.

Up next should be new features for ruby_curry like support for where, loop and case clauses, and probably an efficient type system for the compiler.