Posted on Dec 8, 2018
In August of 2018, I left IBM and joined the faculty of Computer Science at NCSU. I was a professor before my IBM career, and it’s wonderful to be a professor again. This change has some positive implications for the Rosie project: We are building a small group of researchers and developers who will use and contribute to the project.
Another consequence is that the Rosie release schedule will likely follow the academic calendar. The next release, version 1.1.0, is planned for the end of this year (2018). Except for bug fixes, which can be released more often, we are planning subsequent releases for June and August.
I am committed to supporting users and to evolving the project. Please do report bugs and suggest enhancements on GitLab. And comments are welcome on the Rosie subreddit or directly by email. (See the left side menu for an email link.)
Release v1.1 plan (end of 2018)
Recent contributions include:
- Haskell library
- (Forthcoming) Python library for Rosie that presents a very similar API to the existing re module.
- An RPL library which redefines
.will not match newline
^will match the start of input or newline
$will match the end of input or newline
This library is imported like any other RPL library, and provides the
ability to use these alternate definitions of builtins within the scope of
the RPL code that imports it.
- Install script for Windows Subsystem for Linux
librosieability to measure the time needed to perform a match will be exposed through the CLI. Two metrics will be reported, both are CPU time used by the Rosie process (user time) and are reported in microseconds: time spent within the matching vm, and total time. The total time is the sum of the time in the matching vm and the time needed to encode the output.
- In preparation for ahead-of-time compilation of arbitrary RPL patterns written by users, as well as the ones in the standard library, the patterns needed by Rosie internally have been pre-compiled. This set of pre-compiled patterns will be loaded from files at startup instead of being compiled from RPL source.
- Ahead-of-time compilation, when delivered in a 2019 release, will reduce startup time, according to tests already conducted. It will also enable the Rosie binary to be split into a compiler component and a run-time component. When matching against a pre-compiled pattern, only the run-time binary is involved. Early experiments suggest that this binary will be less than 100Kb in size. The next Rosie release will be based on the refactoring that we have done to prepare for separate binaries.
In summary, the coming Rosie v1.1.0 release will contain fixes for reported bugs, several user contributions, one functional enhancement, and some internal changes.
Questions and feedback are welcome
Please post on the Rosie subreddit.
You can also:
- Open an issue on GitLab
- Send email to email@example.com
Follow us on Twitter for announcements about the RPL approach to #modernpatternmatching.