Not logged in. Login

Parabix Road Map

  • What is the future of Parabix compiler technology?
  • What are the issues for completion of icgrep?

icgrep as a Parabix Showcase

  • Demonstration that parallel techniques can outperform sequential techniques.
  • Demonstration that search programs compiled from declarative specifications can outperform the best hand-written sequential programs.
  • Tool to allow exploration of Parabix algorithms
    • ShowREs
    • ShowPablo
    • ShowIR
    • ShowASM
    • DumpTrace
    • TraceCounts
  • Full Unicode support meeting Unicode Level 2 requirements of Unicode Technical Standard 18.
  • Suitable as a replacement for grep (or ripgrep, ag, ...) for (almost) all applications.

icgrep Gap Analysis

  • Colorized output
    • Need to find matches within lines
    • icgrep algorithm finds end of match only
    • run RE in reverse through reversed lines to find start
  • Full lookahead assertions
    • optimize away some cases by RE transformation
    • general approach: run assertion in reverse through reversed input
  • Context lines (-A, -B, -C)
    • ContextGroup kernel
  • Byte offset printing (-b)
  • Recursive path filtering
    • include/exclude support
    • .gitignore, .svn, others
  • Unicode level 2
    • Full Unicode caseless matching
    • Canonical and compatibility equivalent matching
  • Backreferences
    • Implement the known fast cases using parallel methods
    • Reject backreferences that aren't supported?
    • Generalized backreference kernel after initial scan
  • Performance
    • Further accelerate the simple cases using multiple kernels/multiple cores
    • Extend the log2 bounded repetition for more cases
    • Extended star normal form, (A?{B{0,7}c*D{0,1000})* => [ABcD]*
    • Extend MatchStar for all cases handled by log2 bounded repetition
    • Local subexpression optimization
    • Better RE factoring for multiple regular expressions

Parabix Framework Development

  • Individual Kernel development
    • Consolidate deletion/PEXT kernels
    • PDEP kernel review and implementation
    • Gather kernels
  • Sequential scan language/compilation
  • Length-sorted symbol resolution
  • Unix pipe notation support
    • Auto optimizations

Parabix Application Development

  • Transducers
    • CSV to JSON
    • grammar-based transducers
Updated Wed March 28 2018, 09:14 by cameron.