Skip to content

Releases: ShinobuAmasaki/forgex

Forgex v3.5

01 Sep 05:50
Compare
Choose a tag to compare

What's New

None of the Forgex APIs have changed.

Fix

  • Added error handling for calling the size function in debug mode. #3

Forgex v3.4

24 Aug 14:07
Compare
Choose a tag to compare

Fix

From this version, Forgex has been fixed to properly handle anchors (the caret ^ and the dollar $ signs) that are not beginning of a pattern.
It can handle patterns like this:

  • (^a)
  • (^a)|(.*a\s*$)

Forgex v3.3

23 Aug 04:36
Compare
Choose a tag to compare

What's New

  • Literal search optimization is implemented about prefix and suffix.
  • Introduced --disable-literal-optimize flag to the forgex-cli find match lazy-dfa command.
  • Added test cases to check whether prefixes and suffixes are extracted properly.

Note:

  • Literal optimization is not implemented in forgex-cli find match dense command.
  • The optimization with intermediate literals .*literal.* is not implemented in this version because it is difficult to extract them.

Forgex v3.2

14 Aug 06:05
Compare
Choose a tag to compare

What's new

  • Command line interface tool forgex-cli for testing and benchmarking.
  • Thread-safe operators .in. and .match. in do_concurrent and OpenMP parallel block.
  • Automata are now constructed properly from nested closures.
  • Abstract Syntax Trees, NFAs, and DFAs now dynamically allocate memory as needed.

Some bug fixes have been made to allow patterns like this to be handled:

  • a?b+|c*d
  • (a|b(c|d(e|f)g)h|i)*
  • ((a|b)*)*

The above test cases for these patterns are added to test_case_007.

Note:

  • A program build by gfortran on Windows may crash if an allocatable character variable is used in an OpenMP parallel block.
  • If you are using the command line tools in PowerShell on Windows, the system locale shall be UTF-8.

Forgex v3.1

06 Aug 09:43
Compare
Choose a tag to compare

Bugfix

Fixed a bug where the \s shorthand character class did not match whitespace characters. Accordingly, test_case_006 was added on test/.

Users of Forgex v3.0 are strongly encouraged to update to this version.

Forgex v3.0

04 Aug 07:26
a1b9a9d
Compare
Choose a tag to compare

New Features

APIs

This release includes the following features:

  • pure elemental API operators are implemented.
  • pure API procedures are implemented.
  • The function regex has been changed to a subroutine, and if you want to get a string as the return value, use regex_f.
  • Inverted character classes do not match control characters.

Documentation

The documentation is available at: https://shinobuamasaki.github.io/forgex

Internal Changes

This includes the following internal implementation changes:

  • All source code has been rewritten to eliminate the use of pointers and global variables.
  • Procedures for measuring time has been experimentally added to src/benchmark.

Note

These above operators and procedures can also be used within the do concurrent construction. However, note that mixing with OpenMP programs has not been tested. Array allocation optimization is not yet complete. The documentation is work in progress.

Forgex v2.0

10 Jul 00:40
Compare
Choose a tag to compare

New Feature

This release includes the following feature:

  • On-the-Fly DFA construciton is implemented.

About the Internal Implementation

This includes the following internal implementation changes:

  • the prefix forgex_ was added to all internal module names,
  • the automaton_m module was divided into the forgex_lazy_dfa_m and forgex_nfa_m modules,
  • time and memory space consumption was reduced.

No API changes.

Forgex v1.4

28 Jan 10:34
Compare
Choose a tag to compare

This release includes the following feature:

  • added a feature to remember the previous pattern and use it for matching.

With the addition of this feature, overhead can be reduced by using existing DFA for queries of the same pattern.

Forgex v1.3

29 Dec 12:43
Compare
Choose a tag to compare

This version includes bug fixes:

  • The problem of broken character classes in UTF-8 is fixed.
  • Closures now prefer matching strings of one or more characters.

Forgex v1.2

27 Dec 14:40
Compare
Choose a tag to compare

This version includes a bug fix:

  • Fixed broken repetition range (when setting min to zero).

This version includes the following changes:

  • All tests output more verbosely.
  • regex function takes optional argument length, from and to.
  • Zeros in repetition range values and maximum values are not allowed.