Ramarren / cl-parser-combinators

An experimental implementation of parser combinators in Common Lisp
80 stars 5 forks source link

Please use optima instead of fare-matcher #6

Closed fare closed 12 years ago

fare commented 12 years ago

fare-matcher's implementation never grew beyond the stage of a proof of concept. Therefore, with my project to Consolidate Common Lisp Libraries http://fare.livejournal.com/169346.html I've decided to declare it dead and to have everyone use the best pattern-matching library around town, which is Optima: https://github.com/m2ym/optima/

I've been working with the author to make sure his library will have no missing functionality as compared to fare-matcher or any other CL pattern-matching library. You may or may not be using some more advanced features of fare-matcher, such as using pattern variables as part of a guard condition (i.e. (list a (equal a))), which the author is busy adding to the library currently. If you are indeed using such patterns, please wait a few days or weeks for Optima to be fixed. Otherwise, I invite you to switch from fare-matcher to optima at your earliest convenience. In case you were using it, note that fare-quasiquote has been split into its own system, and now supports optima in addition to fare-matcher and in preference to it.

PS: please consider merging cl-parser-combinators, too, and/or splitting them into parts, some of which could be merged. I know that for instance, drewc is working on parser combinators in this SMUG library, and is currently moving them to use Interface Passing Style, which allows him to directly lift Haskell code that uses typeclasses.

Ramarren commented 12 years ago

The dependency on fare-matcher was in test suite as a minor helper function, so I have just dropped it.

As far as I can tell the libraries are too small to be meaningfully merged. Considering that I have not done any significant work with this in about two years and have no recently active users that I know of, if drewc is actively working on it, SMUG should probably just displace parser-combinators at some point.

fare commented 12 years ago

Excellent.

Can you give a look at drewc's SMUG? If it's ready to displace your library, maybe you should advertise the recommendation to use his library instead; and if your library has features that SMUG doesn't, maybe you should document which they are, so that users can better choose and/or drewc can prioritize adding them.

Also, you may consider editing Cliki accordingly, and getting your library removed from quicklisp, or moved to the attic, just like I'll do with fare-matcher as soon as weblocks migrates out of it to optima.

Ramarren commented 12 years ago

Where is recent SMUG located? Googling for smug alone is obviously not constructive, and "drewc smug" shows only the https://github.com/drewc/smug repository which was not updated since the original commit. And https://github.com/VincentToups/parseltongue , which seems to be another separate thing.