coq-club AT inria.fr
Subject: The Coq mailing list
List archive
- From: Talia Ringer <tringer AT cs.washington.edu>
- To: Coq-Club <coq-club AT inria.fr>
- Subject: [Coq-Club] Updated plugin tutorials in Coq repository
- Date: Sat, 14 Sep 2019 11:40:43 -0700
- Authentication-results: mail2-smtp-roc.national.inria.fr; spf=None smtp.pra=tringer AT cs.washington.edu; spf=None smtp.mailfrom=tringer AT cs.washington.edu; spf=None smtp.helo=postmaster AT mail-io1-f42.google.com
- Ironport-phdr: 9a23:7yVDkBLvowIwyWWV79mcpTZWNBhigK39O0sv0rFitYgeK/3xwZ3uMQTl6Ol3ixeRBMOHsqkC07ud6vq+ESxYuNDd6SpEKMQNHzY+yuwu1zQ6B8CEDUCpZNXLVAcdWPp4aVl+4nugOlJUEsutL3fbo3m18CJAUk6nbVk9Kev6AJPdgNqq3O6u5ZLTfx9IhD2gar9uMRm6twrcutQYjId4Nqo8zhTFrmZWd+lX2GhkIU6fkwvm6sq/4ZJv7T5ct+49+8JFTK73Y7k2QbtEATo8Lms7/tfrtR7NTQuO4nsTTGAbmQdWDgbG8R/3QI7/vjP1ueRh1iaaO9b2Ta0vVjS586hrUh7ohzwZODM/7Wral9Z/jKNfoBKmuhx/34vZa5ybOfZiYq/Qe84RSGxcVchTSiNBGJuxYIQPAeQPPuhWspfzqEcVoBSkGQWhHvnixiNUinL026AxzuQvERvB3AwlB98Arm7brNH0NKgITOu70KjIzTPMb/xIwzf29Y/Fcgw7ofGNW7JwftTeyVM0GgzZlVWcs4LkMCmO1uQNsmib6eVgVf6oi24hsQ1+vCWgxto1h4TPm4kbxFfE9SBjz4Y0I921UEF7Yd+4EJtQqiGVLJF6Td8lQ2Ftvisx174IuYajcSQU1JgqwwTTZv+HfoSS/x7uVeecLS13iX57fr+0mgy8/lK6yuLmU8m5yFZKoTRBktnLrn0N0gbc6smDSvdk/0eh3iuD2xnd6uxLP0w4j6XbK5kmwr4/kpocr17PETPxmEXzlKOWd0Mk9fa06+n/fLnqupuRO5V3hwz+KKgih82yDOUiPgUBQWSX4eG826fi/U39TrVKlPo2kqzBvZDGP8Qbp6i5AwBL3YY58BuwEyym3M4WnHYdN1JFeBOHj47mO1HSJ/D4C+2zjEqxnzd23/zGJKHuAo3RLnjfl7fsZapy60lFyAYq0d9f449UBaoaLfLoWk7xscTYAQUjPwy1xebnEtR92ZkEVWKBGK/KeJ/V5HSP/6cEJ/SGLNsevy+4IPw47dbvi2U4kBkTZ//684EQbSWEF/BnKg2jYHzjj81JRXsQvwwxQfbCg0bETjdIZ3e0UL474Hc2BJ/wXtSLfZyknLHUhHTzJZZRfG0TUgnRQ0etTJ2NXrI3UAzXIsJllWZZB72oSotk1Bb38QGmkfxoKe3b/iBevpXmhoAstr/j0Coq/DkxNPyzlmSETmV6hGQNHm5k17s5vkVmylaF3rR/hbpVGcEBv6oVADd/DobVyqlBM/63QhjIJ4bbQ03gXdy9ATA3Qc42xZkDb1svQ9g=
Hi all,
This happened a while ago, but I forgot to send an update. During the Coq Users & Developers Workshop, I updated three of the four plugin tutorials in the Coq repository: https://github.com/coq/coq/tree/master/doc/plugin_tutorial
tuto0, tuto1, and tuto2 should now be using best practices. They went through code review from the Coq developers. I have also documented them a lot, and I have expanded them with some new functionality:
- printing warnings
- printing errors
- understanding the DSL for writing tactics and commands in OCaml
- more on interning and externing
- looking up terms you have defined, refreshing the environment appropriately
- threading state properly, e.g. in type-checking
- checking if two terms are possibly convertible under some set of constraints
- implementing a counter whose state persists across imports
I'm yet to touch tuto3, but I hope to get to it soon.
I hope this will help anyone who is considering writing a plugin. I have had a lot of my own plugin tutorials floating around in the past, and they are useful too, but none of them used best practices. I will update them as well, soon. But this is nice because it has been reviewed by the Coq developers, so it is a good place to look if you are writing a plugin and aren't sure which APIs to call, what on earth you're supposed to do with an evar_map, or how you are supposed to define a cache for your command that persists across imports.
Let me know if you have any questions, or open an issue and assign it to me if there is functionality you don't see here that you'd really like in the plugin tutorials.
Talia
- [Coq-Club] Updated plugin tutorials in Coq repository, Talia Ringer, 09/14/2019
Archive powered by MHonArc 2.6.18.