Changeset 33637 in project


Ignore:
Timestamp:
09/11/16 16:15:41 (5 years ago)
Author:
sjamaan
Message:

Update uri-generic alternatives with prcc implementation (slow as hell)

Location:
release/4/uri-generic/trunk/alternatives
Files:
1 added
1 edited

Legend:

Unmodified
Added
Removed
  • release/4/uri-generic/trunk/alternatives/README

    r30969 r33637  
    141141ruleset is quite readable.
    142142
     143------------------------------------------------------------------------------
     144
     145prcc-based implementation [[920 LOC]]
     146
     14769.016s CPU time, 1.292s GC time (major), 127983583/89688594 mutations (total/tracked), 693/696460 GCs (major/minor)
     148
     149NOTES:
     150
     151At first this looks like a very limited library, but once you start
     152working with it you realise that all the important combinators are
     153there.  It's a very clean API if you ignore all the <xyz> aliases.  It
     154only supplies what's needed, and you can easily build additional
     155combinators on it.
     156
     157The documentation was a bit lacking, but a dive into the source code
     158was enough to figure out most things (and now I've extended the docs a
     159bit with that knowledge).
     160
     161I used the comparse library as a basis, which was easy enough to
     162convert to prcc.  There are unfortunately a few bugs regarding stack
     163underflows (raised by the "stack" egg) and reading the empty string at
     164eof resulted in a parse error, which means edge case parsing is
     165tricky.  That means the current implementation does **not** pass the
     166test suite.
     167
     168It's obviously too slow for real-world use, probably because it uses
     169srfi-41 which is not known to be efficient at all.  It could probably
     170be converted to lazy-seq.
     171
    143172=========================================================================
    144173
Note: See TracChangeset for help on using the changeset viewer.