2020 Grant Accomplishment Report
The following projects have been completed, and their deliverables have been accepted by the grant committee.
mini mruby compiler (mmrbc)
Project summary
mmrbc (mini mruby compiler) compiles Ruby scripts into VM code of mruby. Typical operating environment is a one-chip microcontroller with 256 KiB ROM and 128 KiB RAM. It’s too small to run mruby-compiler that comes as a standard library with mruby. By combining mmrbc and mruby/c which is another mruby VM implementation for small resource environments, Ruby can run as an interpreter on a one-chip microcontroller.
Possible uses for this system include an IoT device introductory kit that can be developed without a compilation tool chain, facilitating debugging of the actual device when developing a full-scale embedded application, and a setup for school education integrated with Smalruby.
Applicant
Monstar Lab, inc.
Final report
Mentor’s report
Views support for NumRuby and Ruby-Sparse improvements.
Project summary
NumRuby is the re-implementation of popular dense matrix library NMatrix. It is re-implemented with the primary focus being performance and scalability. It has shown upto 100x speedup for the fundamental functionalities such as elementwise operations. This project aims at adding Views support to the NumRuby library. Views are used to have multi-dimensional data structures that exchange data without creating copies which saves a lot of memory and execution time.
Sparse matrices are an important part of scientific computing. Ruby-Sparse library is aimed to build an efficient and feature-rich end-user intended Sparse matrix library in Ruby with interfaces to popular dense matrix libraries (like Numo-Narray, NumRuby[NMatrix]) with linear algebra support.
Applicant
Udit Gulati
Final report
Mentor’s report
ruby-htslib - High-throughput sequencing data manipulation for Ruby
Project summary
Ruby-htslib is the Ruby bindings to HTSlib, a C library for processing high throughput sequencing (HTS) data. It will provide APIs to read and write file formats such as SAM/BAM and VCF/BCF.
In recent years, next-generation sequencing (NGS) technologies for reading DNA and RNA sequences have become popular in the life science field. We will provide a way to manipulate the HTS file formats from Ruby. We aim to improve the Ruby ecosystem in genomics.
Applicant
kojix2
Final report
Mentor’s report
Happy Eyeballs Version 2 (RFC8305) support for Ruby’s socket library
Project summary
Ruby’s socket library has an issue with connecting to servers that are not reachable via IPv6. It affects RubyGems and other software written in Ruby. To solve this issue, the socket implementation should fallback from unsuccessful connection attempts. In this project, we implement “Happy Eyeballs Version 2” defined as RFC 8305 that enables fallback IPv6 to IPv4.
Applicant
Masaki Matsushita