This looks great! Can this be used to infer macro specs based on examples
of usage?

On 14 October 2017 at 04:30, Ambrose Bonnaire-Sergeant <
abonnaireserge...@gmail.com> wrote:

> Hi,
>
> Happy to announce a new set of tools to *automatically*
> *generate* types and specs for your projects.
>
> *Dependency information:*
> 1. core.typed <https://github.com/clojure/core.typed>
>     [org.clojure/core.typed "0.4.2"]
> 2. lein-typed <https://github.com/typedclojure/lein-typed>
>     [lein-typed "0.4.2"]
> 3. boot-typedclojure <https://github.com/typedclojure/boot-typedclojure>
>   [org.typedclojure/boot-typedclojure "0.1.0"]
>
> *Tutorial:*
> Here's how to try it out (for Lein projects using clojure.test):
>
> 1. Add {:user {:plugins [[lein-typed "0.4.2"]]}} to your
> ~/.lein/profiles.clj
> 2. Add a runtime dependency to [org.clojure/core.typed "0.4.2"] in your
> chosen Lein project.clj
> 3. To infer specs: Run lein typed infer-spec <insert-ns>
> 4. To infer types: Run lein typed infer-type <insert-ns>
>
> WARNING: This tool *rewrites your files*. Only try with backed up code.
>
> *Some examples:*
> *clj-time:*
> *- *Spec setup
> <https://github.com/frenchy64/clj-time/commit/1df3be64a677a96f1c78520f35facba34e06da63>
> + spec results
> <https://github.com/frenchy64/clj-time/commit/c3b47cac8e849c952b7df5e7106d70e65c0bbd08>
> - Types setup
> <https://github.com/frenchy64/clj-time/commit/e3796332dc62002fa5ce5b5ab2e128328dc00077>
> + types results
> <https://github.com/frenchy64/clj-time/commit/8c2f28ace006c1f28d6ef3aebdec9a6d176c9030>
>
> *cheshire*
> *- *Spec setup
> <https://github.com/frenchy64/cheshire/commit/4f8d4b61b9460113ec25c62489e8918e69405ca8>
> + spec results
> <https://github.com/frenchy64/cheshire/commit/3e391d933c2293fdcc4d192bbeff61ff7e0356dd>
> - Types setup
> <https://github.com/frenchy64/cheshire/commit/6b1f0f730cb9c74b1daf13de11ddfeb23ce27383>
> + types results
> <https://github.com/frenchy64/cheshire/commit/0cb14593841360a1391efc96d2370bd57205ac7a>
>
> (Note: use the latest core.typed versions to reproduce on your machines)
>
> *Hints:*
> This tool instruments your namespace and runs your test suite. This
> can be expensive. Try these options:
>
> *   Choose lein test selectors (here: [:integration :generative]
> selectors)*
>   lein typed infer-spec <insert-ns> :test-selectors "[:integration
> :generative]"
>
> *   Timeout individual tests (1000ms timeout)*
>   lein typed infer-spec <insert-ns> :test-timeout-ms 1000
>
> If annotation generation hangs, try these options:
>
> *   Disable recursive type inference*
>   lein typed infer-spec <insert-ns> :infer-opts "{:no-squash-vertically
> true}"
>
> If you see "No such namespace: s", try deleting existing automatically
> generated specs/types before regenerating them. (git checkout works well
> here)
>
>
>
> *Reply* with your generated specs & types!
>
> Thanks,
> Ambrose
>
> --
> 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