Hi Jeaye,

1. That's indeed a mistaken breakage, I will fix it. Note that specifically
the java.net.URL input is what's not properly handled, so if you call (str
(io/resource "...")) that will still work as expected.

2. That's also a bug, due to how defparser quotes all of its arguments and
tries to use them as arguments to insta/parser. I will fix it, and add more
thorough tests for the macro.

To answer your more general question: I don't think Clojure users of
Instaparse should really have to think about defparser, since I think most
JVM use cases don't suffer from the small extra one-time startup cost. I
made it primarily with ClojureScript in mind, since being able to now slurp
the grammar adds some power that's non-trivial to implement otherwise. But
I made it available to both clj and cljs for completeness and
cross-compatibility.

Thanks for the reports.
--Alex

On Sat, Dec 24, 2016 at 3:13 PM, Jeaye <cont...@jeaye.com> wrote:

> This is great to see; instaparse is crucial for some of my projects and I
> appreciate the ongoing development.
>
> I've noticed two issues with 1.4.4 which I want to run by you:
>
> 1. insta/parser has a breaking change, in that it no longer accepts
> resources directly
>
>   I can work around this easily by slurping before hand, but this may've
> been an accidental breakage.
>
> 2. insta/defparser doesn't support the same optional parameters as
> insta/parser
>
>   Specifically, I've found that it doesn't like when I specify
> :auto-whitespace, which is a feature on which I rely heavily for my grammar.
>
> Finally, given the possible performance benefits, do you recommend
> everyone (Clojure and ClojureScript) prefer defparser, where possible?
>
> Thanks!
>
> On Fri, Dec 23, 2016 at 04:52:12PM -0800, Mark Engelberg wrote:
> > Instaparse is a library for generating parsers from context-free
> grammars.
> > https://github.com/engelberg/instaparse
> >
> > The big news for this release is that Alex Engelberg has combined the
> > Clojure version with the Clojurescript version of instaparse (initiated
> by
> > Lucas Bradstreet in 2014) so that moving forward, we can maintain both
> > versions as part of the same codebase.  Instaparse leverages a number of
> > Clojure interfaces and subtle features that differ between Clojure and
> > Clojurescript, so merging the ports was a significant effort.
> >
> > Also, to achieve backwards compatibility, Alex wrote the cljsee leiningen
> > plugin which splits cljc files into clj and cljs files for compatibility
> > with Clojure 1.5 and 1.6.  Check out cljsee if you are interested in
> > maintaining backwards compatibility in your own cljc-based projects.  (
> > https://github.com/aengelberg/cljsee)
> >
> > The one new feature is a defparser macro, especially relevant to the
> > Clojurescript port because it makes it possible to build the parser at
> > compile time so the Clojurescript code will execute more quickly.
> >
> > Other than that one addition, the behavior should be identical to the
> prior
> > release.
> >
> > --
> > You received this message because you are subscribed to the Google
> > Groups "Clojure" group.
> > To post to this group, send email to clojure@googlegroups.com
> > Note that posts from new members are moderated - please be patient with
> your first post.
> > To unsubscribe from this group, send email to
> > clojure+unsubscr...@googlegroups.com
> > For more options, visit this group at
> > http://groups.google.com/group/clojure?hl=en
> > ---
> > You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> > To unsubscribe from this group and stop receiving emails from it, send
> an email to clojure+unsubscr...@googlegroups.com.
> > For more options, visit https://groups.google.com/d/optout.
>
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with
> your first post.
> To unsubscribe from this group, send email to
> clojure+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en
> ---
> You received this message because you are subscribed to the Google Groups
> "Clojure" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to clojure+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to