Tags give the ability to mark specific points in history as being important
  • v1.0.0   Version 1.0.0

    Notes:

    • This is version 1.0, at last. Please report bugs and other issues!
    • See the CHANGELOG for the changes since the last beta.
    • The first installment of librosie documentation has been posted on the Rosie blog. If anything is not clear, let us know! (Open an issue, or discuss on reddit.)
  • v1.0.0-beta-13   Version 1.0.0-beta-13
    dd04b00b · Version 1.0.0-beta-13 ·

    FIXED

    • The pattern time.simple now accepts "0:00" as it should.
    • The pattern all.things failed to classify unsigned floats as floats; this has been fixed.

    Notes:

    • The Beta release period will be ending soon.
    • See the CHANGELOG for the full list.
    • The first installment of librosie documentation has been posted on the Rosie blog. If anything is not clear, let us know! (Open an issue, or discuss on reddit.)
  • v1.0.0-beta-12   Version 1.0.0-beta-12
  • v1.0.0-beta-11   Version 1.0.0-beta-11
    25c40925 · Version 1.0.0-beta-11 ·

    CHANGED

    • The ci macro will now operate on character sets as well as literals, making them all case insensitive. (Note that ci continues to operate only on its argument, e.g. ci:[A-Z] converts [A-Z] into a case insensitive version. It will not change patterns already bound to names. I.e. ci:foo is the same as foo.)
    • The output option called subs now returns an empty string when there is a match but it has no sub-matches.

    FIXED

    • Bug in REPL introduced in the previous beta.

    Notes:

    • The Beta release period will be ending soon. In June, we will very likely have our version 1.0.0 release.
    • See the CHANGELOG for the full list.
    • The first installment of librosie documentation has been posted on the Rosie blog. If anything is not clear, let us know! (Open an issue, or discuss on reddit.)
  • v1.0.0-beta-10

    ENHANCED

    • The trace function now takes a "style" option (aka "encoder") which can be full, condensed, or json.
    • The trace command in the CLI uses '-o' to specify the trace style.
    • The json output for tracing implements Issue #49 (trace was called 'eval' in the past).
    • The default color assignments for -o color are now visible via the config command (CLI) and the config() API.

    CHANGED

    • The CLI will now accept the -o option after the command (match, grep, or trace).

    FIXED

    • The num.int pattern was modified in a bad way in the last beta. It has been fixed.
    • Issue #79

    Notes:

    • The Beta release period will be ending soon. In June, we will very likely have our version 1.0.0 release.
    • See the CHANGELOG for the full list.
    • The first installment of librosie documentation has been posted on the Rosie blog. If anything is not clear, let us know! (Open an issue, or discuss on reddit.)
  • v1.0.0-beta-9   Version 1.0.0-beta-9
    c502ec9c · Version 1.0.0-beta-9 ·

    CHANGE in the API and CLI

    • The output option named "matches" has been renamed to "data" for consistency with "subs". And the output option named "default" has been removed. We apologize for these changes. (Our intention is to make these clean-ups now, while we are in beta.)

    CHANGE in the standard library

    • The num.float and num.int patterns now accepts all valid JSON floats and ints, respectively. They also accept numbers like "+1" and "02" which are not valid JSON.
    • The various patterns in num that have fractional parts will no longer separate out just the fractional part into a submatch labeled frac.

    Notes:

    • See the CHANGELOG for the full list.
    • The first installment of librosie documentation has been posted on the Rosie blog. If anything is not clear, let us know! (Open an issue, or discuss on reddit.)
  • v1.0.0-beta-8
    289083a5 · Version 1.0.0-beta-8 ·

    API CHANGE in rosie.py

    • The boolean output encoder now returns True/False instead of True/None.

    CHANGE in the standard library

    • The net.fqdn pattern used to accept floats like 1.2e03. It no longer does. You can use net.fdqn_strict to accept all valid partially qualified domain names, which would include 1.2e03.

    Notes:

    • See the CHANGELOG for the full list.
    • Blog posts about the changes and enhancements are at the Rosie blog.
    • All documentation should be up to date now, though librosie documentation is still in the works. If anything is not clear, let us know! (Open an issue.)
  • v1.0.0-beta-7   Version 1.0.0-beta-7
    0d73bf05 · Version 1.0.0-beta-7 ·

    API CHANGE in rosie.py

    • The argument to rosie.engine() has been removed. By default, rosie.py will load librosie by looking first in the same directory as rosie.py. If that fails, it will load from the system location (e.g. /usr/local/lib).
    • If you want to control which librosie is loaded, e.g. if you have multiple rosie installations, then you must call rosie.load(path) before creating any engines.
    • The path argument to rosie.load() can be a string or rosie.librosie_local or rosie.librosie_system:
      • If the argument is a string, it should be the directory in which rosie.py will find librosie.
      • The string may start with '/' (absolute path), './' (relative to current working directory), or '//' (relative to the directory in which rosie.py was loaded by python.
      • The argument librosie_local is equivalent to '//' (load from rosie.py directory).
      • The argument librosie_system is equivalent to '' (the empty string) or None.
      • Supplying a path relative to the current working directory is allowed, but discouraged.
    • Note that set_librosie_dir() from beta-6 has been removed. We apologize for any confusion.

    Notes:

    • See the CHANGELOG for the full list.
    • Blog posts about the changes and enhancements are at the Rosie blog.
    • All documentation should be up to date now, though librosie documentation is still in the works. If anything is not clear, let us know! (Open an issue.)
  • v1.0.0.-beta-6
    fa71504c · Merge of beta6 dev branch ·

    API CHANGE in rosie.py

    • The argument to rosie.engine() has been removed. To select how rosie.py finds the librosie library, call rosie.set_librosie_dir. If you don't call rosie.set_librosie_dir, the default is to follow the system load path, which typically looks in places like /usr/lib and /usr/local/lib.

    Fixed:

    • A race condition that could cause a deadlock in multi-threaded programs has been removed. When multiple threads were using librosie, each with their own engine (as required), and they were processing the same file, there was an unfortunate interaction regarding file locking.

    Notes:

    • See the CHANGELOG for the full list.
    • Blog posts about the changes and enhancements are at the Rosie blog.
    • All documentation should be up to date now, though librosie documentation is still in the works. If anything is not clear, let us know! (Open an issue.)
  • v1.0.0-beta-6   Version 1.0.0-beta-6
    fa71504c · Merge of beta6 dev branch ·
  • v1.0.0-beta-5   Version 1.0.0-beta-5

    Fixed:

    • Bug in rosie.py that occurred when printing one particular error message
    • Error messages from rcfile processing are now returned by librosie to the calling program

    Notes:

    • See the CHANGELOG for the full list.
    • Blog posts about the changes and enhancements are at the Rosie blog.
    • All documentation should be up to date now, though librosie documentation is still in the works. If anything is not clear, let us know! (Open an issue.)
  • v1.0.0-beta-4
    550145e7 · Version 1.0.0-beta-4 ·

    Fixed:

    • Some commands (CLI) did not respect some command-line options.
    • Some error messages were not returned correctly from librosie to the calling program.

    Notes:

    • See the CHANGELOG for the full list.
    • Blog posts about the changes and enhancements are at the Rosie blog.
    • All documentation should be up to date now, though librosie documentation is still in the works. If anything is not clear, let us know! (Open an issue.)
  • v1.0.0-beta-3
    58417fa5 · Version 1.0.0-beta-3 ·

    Small bug fixes, but an important one that fixes librosie for Python3 users.

    Notes:

    • See the CHANGELOG for the full list.
    • Blog posts about the changes and enhancements are at the Rosie blog.
    • All documentation should be up to date now, though librosie documentation is still in the works. If anything is not clear, let us know! (Open an issue.)
  • v1.0.0-beta-2

    Notable changes:

    • New output encoder, bool that indicates a match or not, but returns no other data. Not useful at the command line, but useful from programs using librosie.
    • New example (in extra/examples): python program to count source lines of code (for files that use line comments, not block comments). Not meant to be a solution, but just an example of using librosie from python.

    Notes:

    • See the CHANGELOG for the full list.
    • More blog posts about the changes and enhancements will appear in the coming weeks at the Rosie blog.
    • All documentation should be up to date now, though librosie documentation is still in the works. If anything is not clear, let us know! (Open an issue.)
  • v1.0.0-beta-1
    0ded6f76 · Version 1.0.0-beta-1 ·

    At last! With this release, we intend to freeze the CLI and the librosie (C) API. Our plans are to fix bugs for some weeks, and then release v1.0.0. Please try things out, and report bugs by opening issues!

    We are open to making small enhancements, as long as they are backwards compatible.

    A lot of changes and improvements went into this release. Here are a few highlights...

    Some breaking changes from the last alpha release:

    • The syntax for grammar has changed. See the RPL documentation for details.
    • The pattern net.any will no longer recognize unsigned floats like '1.2'.
    • The pattern all.things will now match hex numbers that start with an upper-case letter, like 'C1', as identifiers instead of hex numbers. (Of course, num.any will match 'C1' as a hex number.)
    • The config() API of librosie now returns an array of JSON objects.

    Cool new stuff:

    • The Python module rosie.py is now compatible with Python 2.7 and 3.6. Let us know if you have problems.
    • Rosie now reads ~/.rosierc, which you can use to set colors, set the library search path, and load rpl files.
    • The CLI now supports --colors, --libpath, --rcfile, and --norcfile.
    • The net package now has fqdn_practical and fqdn_strict. The first will not recognize '1.2' as a partially qualified domain name, but the second will.

    Here's a reminder of breaking changes from the previous release:

    • The CLI --version option has changed into a version command.
    • The librosie functions that return an array of messages now return a null pointer instead of a pointer to empty array (JSON-encoded) of message strings.
    • The librosie APIs for the lib path and memory allocation limit have changed. See any of the clients in the src/librosie sub-directories, e.g. the Python module for Rosie.

    Notes:

    • See the CHANGELOG for the full list.
    • New blog posts about the changes and enhancements will appear in the coming weeks at the Rosie blog.
    • All documentation should be up to date now. If anything is not clear, let us know! (Open an issue.)
  • v1.0.0-alpha-10   Tagged new version
    3e50f7c7 · Updated CHANGELOG ·

    There is one more planned alpha release. It is to implement a convenient way to supply default Rosie options and preferences.

    After that, we will freeze the API and the CLI, and release a beta. We will be in beta for a month or two as we fix bugs, and then release a proper 1.0.0.

    This release is a small update over the previous one, and is mostly a bug fix.

    New in v1.0.0-alpha-10:

    • Output encoder -o jsonpp for pretty-printed JSON.
    • Additional sample docker file, ubuntu-go, which tests the go client of librosie.

    The previous release had a lot in it. It's release notes are repeated here for convenience:

    New in v1.0.0-alpha-9:

    • Patterns in the standard library for each Unicode script, block, general category, word|line|sentence|grapheme break, numeric type, and (binary) property. See rpl/Unicode.
    • A working Go client of librosie that supports most of the Rosie API.
    • The rosie executable is now a binary that is based on librosie.

    A few possibly-breaking changes occurred in the 1.0.0-alpha-9 release:

    • The CLI --version option has changed into a version command.
    • The librosie functions that return an array of messages now return a null pointer instead of a pointer to empty array (JSON-encoded) of message strings.
    • The librosie APIs for the lib path and memory allocation limit have changed. See any of the clients in the src/librosie sub-directories, e.g. the Python module for Rosie.

    Notes:

    • See the CHANGELOG for the full list.
    • New blog posts about the changes and enhancements will appear in the coming days and weeks at the Rosie blog.
    • Updated documentation is in progress as well.
  • v1.0.0-alpha-9

    This should be the penultimate alpha release. One more alpha is planned, and it is to implement a convenient way to supply default Rosie options and preferences.

    After that, we will freeze the API and the CLI, and release a beta. We will be in beta for a month or two as we fix bugs, and then release a proper 1.0.0.

    New in this release:

    • Patterns in the standard library for each Unicode script, block, general category, word|line|sentence|grapheme break, numeric type, and (binary) property. See rpl/Unicode.
    • A working Go client of librosie that supports most of the Rosie API.
    • The rosie executable is now a binary that is based on librosie.

    A few possibly-breaking changes occurred in this 1.0.0-alpha-9 release:

    • The CLI --version option has changed into a version command.
    • The librosie functions that return an array of messages now return a null pointer instead of a pointer to empty array (JSON-encoded) of message strings.
    • The librosie APIs for the lib path and memory allocation limit have changed. See any of the clients in the src/librosie sub-directories, e.g. the Python module for Rosie.

    Notes:

    • See the CHANGELOG for the full list.
    • New blog posts about the changes and enhancements will appear in the coming days and weeks at the Rosie blog.
    • Updated documentation is in progress as well.
  • v1.0.0-alpha-8
    44d18806 · Version 1.0.0-alpha-8 ·

    This release has new features relating to character sets and literal strings, plus some fixes, and one BREAKING CHANGE. A lengthy blog post explaining the changes to (and design of) RPL character sets has been posted on the Rosie blog. For the moment, please see the CHANGELOG and that blog post. Documentation of the new features is coming soon.

    The breaking change will require changes to some RPL files: In character lists like [abc] and ranges like [a-z], there are two rules that must be followed. (1) To use any of the character set "magic" characters, you MUST escape it. They are [ ] ^ - So, [+\-] matches + and -. (2) For a character range, the start must have a lower value than the end. So [a-z] is ok, but [z-a] is invalid. Apologies for the breaking changes. They were necessary, as will be explained in a blog post coming soon. The goal is to avoid breakage even in this series of alpha releases, and especially in the coming beta. We do not anticipate any further breaking changes, only the addition of new capabilities.

    [Edited 2018-01-07 to add link to change log.] [Edited 2018-01-08 to add link to Rosie blog.]

  • v1.0.0-alpha-7

    This release brings thread safety to librosie.

    There are some API changes to rosie_import and the return value of rosie_config in librosie. Other changes are listed in the CHANGELOG.

    Note: There is a draft of a sample Go client that is incomplete. It only works when the main goroutine is locked to the OS thread, because calling librosie requires more stack space than Go allocates for non-main goroutine threads. Looking for a fix or a work-around. Please get in touch if you have one!

    See CHANGELOG for details.

    [Edited 2018-01-07 to add link to change log.]

  • v1.0.0-alpha-6
    2f163fed · Version 1.0.0-alpha-6 ·

    In addition to some minor fixes, this release includes some possibly-breaking changes (which will occasionally happen in these alpha versions):

    CHANGES to output options:

    • The -o color option now prints the entire input line (Issue #68)
    • The -o text option has been renamed to -o matches (similar to the --only-matching option of Unix grep, and analogous to -o subs which prints the sub-matches)
    • The -o nocolor option has been removed because it's now redundant

    CHANGES to RPL standard library:

    • In net.rpl, the platform-specific MAC patterns now have the prefix "MAC_".

    See CHANGELOG for details.

    [Edited 2018-01-07 to add link to change log.]