So personally, I don't want extremely accurate suggestions in the core of Clojure. Why? Because I think they will never go far enough and I have a ton of features I want to see that can't (shouldn't) be in the core of a language.
I'll never forget the first undefined symbol I got in Clang after switching from GCC. When I say "undefined local 'val' did you mean 'vals'?". I was floored, what was this magic? When I sit down and write a laundry list of things I would like to see in error reporting for spec: - Spelling suggestions: "did you mean :require instead of :requir?" - Type suggestions: "you passed a symbol did you want a keyword?" - Phonetic suggestions: "you passed :color, did you mean :colour?" - Structural suggestions: "you passed [[42]] did you mean [42]?" Most (all) of these are way too broad for inclusion in the core of a language (imo), not to mention the problems you'd hit with multi-lingual support. So I say to all that, give me data and let 3rd parties write the libraries. I'd much rather have a 200MB "error reporter" lib in my {:profiles {:dev ...}} than included in the clojure.jar. Anyway, that's my 2cents. And if someone doesn't write that library for me soon, I may have to :) Timothy On Tue, Aug 23, 2016 at 7:47 AM, Brian Marick <mar...@roundingpegs.com> wrote: > > On Aug 22, 2016, at 7:50 PM, Alex Miller <a...@puredanger.com> wrote: > > > You've complained in other channels about the "learning to read" error > messages part and I think you've taken it entirely the wrong way or maybe I > just disagree. There are benefits from reporting errors in a generic, > consistent way. […] > > > Do there exist examples of what is desired for error messages in > 1.9-final? Not promises, but a “this is what we’re shooting for”? What > would you all like the specific error messages complained about in this > thread to look like? > > Colin Fleming wrote: "The error message produced by the code I demoed at > the conj last year would be: > > Unexpected symbol 'require' at <exact error location> while parsing > namespace clauses. Expected :refer-clojure, :require, :use, :import, :load > or :gen-class.” > > Is that the goal? I fear that the goal is that it should be my job to > understand "(cat :attr-map (? map?) :clauses :clojure.core.specs/ns-clauses)”. > For what little it’s worth, I consider that completely unacceptable. > > - Getting the error data (specifically the explain-data output) to be both > sufficient and generically useful is the first priority. I think at this > point that's pretty close and unlikely to change significantly. > > > My bias here is that I come from the learned-from-bitter-experience > tradition that believes it’s very risky to (1) get the infrastructure > right, and then (2) pop down the user-visible features on top of it. Very > often, the infrastructure turns out to be a poor match for the actual needs > of the features. But, since (1) is already done, the features - and > consequently the users - suffer. > > Please understand I’m not being insulting when I say that everyone has > weaknesses and blind spots, even undoubted geniuses. In Clojure, error > messages and documentation (especially doc strings) have long been glaring > weaknesses. So I am wishing to be helpful when I counsel *quickly* getting > to worked examples of output, especially output that novices are likely to > encounter. And exposing those messages to typical users, ones who are not > familiar with core.spec. > > That seems prudent. > > I believe strongly enough in good error messages that I would be willing > to do some of the scut work, if needed. > > -- > 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. > -- “One of the main causes of the fall of the Roman Empire was that–lacking zero–they had no way to indicate successful termination of their C programs.” (Robert Firth) -- 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.