coq-club AT inria.fr
Subject: The Coq mailing list
List archive
- From: Ralf Jung <jung AT mpi-sws.org>
- To: coq-club AT inria.fr, Andrew Appel <appel AT princeton.edu>
- Subject: Re: [Coq-Club] option to disable partially qualified Require Imports
- Date: Fri, 18 Sep 2020 17:03:55 +0200
- Authentication-results: mail2-smtp-roc.national.inria.fr; spf=None smtp.pra=jung AT mpi-sws.org; spf=Pass smtp.mailfrom=jung AT mpi-sws.org; spf=None smtp.helo=postmaster AT jupiter.mpi-klsb.mpg.de
- Ironport-phdr: 9a23:sYOlFxJt5AZQZDnd2NmcpTZWNBhigK39O0sv0rFitYgfLvjxwZ3uMQTl6Ol3ixeRBMOHsq0C07Sd7f+oGTRZp8rY7jZaKN0EfiRGoP1epxYnDs+BBB+zB9/RRAt+Iv5/UkR49WqwK0lfFZW2TVTTpnqv8WxaQU2nZkJ6KevvB4Hdkdm82fys9J3PeQVIgye2ba9vIBmsogjdq8sbjZF+JqswxRfEo3lFcPlSyW90OF6fhRnx6tqx8ZJ57yhcp/ct/NNcXKvneKg1UaZWByk8PWAv483ruxjDTQ+R6XYZT24bjBlGDRXb4R/jRpv+vTf0ueR72CmBIM35Vqs0Vii476dqUxDnliEKPCMk/W7Ni8xwiKVboA+9pxF63oXZbp2ZOOZ4c6jAZt4RW3ZPUdhNWCxAGoO8bpUAD+wdPeZDsoLxo0ICoQaiCQWwAe/izCJDiH3r0q0gy+kvDB/I3AIgEdwNvnrbotr6O6UOXu6616TI0TbOYulK1Tvh5oXFcBYsquyMU7JqdsrRzFEiGR/fgVWUp4zuIjeb1vkLs2iU8uFtUuCvi3MhqwF+uTWvw98siojQioIOxFHE7j91wIEvJd23UUN2Z8OvH5RMuS+ALYR2Xt8iTH9yuCY80rAItpC1cSgWxJkk2hPSa/yKfouV7x/jSeqcLjN1iXJ7db+8mxq+7EytxvPiW8e0zlpHoDdJn9fIu34N2RHf9seKR/1g9Umv3jaP0hrc6uBCIU0skKrbM58hzqcrlpsdqkTPBCj2mF/5jKKQa04q+fCo5vz6brjoopKQLZJ4hwXkPqktm8GzG/k0PwgWU2WZ++mwzqDv8EnlTLlQk/E7k6bUvIrEKcgFpqO0BRJe3Jw55BalFTim1cwVnXkZI1JBfxKKl4rpO0zWIPD5EfewnU6snC1ux/DeP73tG5bNLnzYkLj6Z7p97lZcyAUpwd9C+Z1YErABIPTtVU/trNHUExE0Pgiuz+r6DNhxzIATVGOVDqOEMK7eqVqI6fguI+mIao8VojH9K/096v7skH85n1AdcLKs3ZsPaXC0B+9mIkuCYXb2hdcBC2gKshIkTOP2kF2CTSJTZ3GqUq0g4TE7EZuqApvHRoCwm7OMxzy7H51TZmBeEF+AC3bod4OeW/cNci2eOMFhkiZXHYSmHoQmzFSlsBLw47thNOvdvCMC8drK0tRv6vKbvAkq+Dg8W82Fy2yJZ3lun2UDSiMx2uZyrVErmXmZ1q0tufVcG5Rx+vVGGlM4KJjT5+liCpXpRRmHec2GHgX1Cu66CC08G4pii+QFZFxwTpD71kiajniaRoQNnrnOP6Qat6fV3nz/PcF4ki2U0bEgykI5WY1IL2L03/cjpTiWPJbAlgCir4jvbb4VhXWf8X+CiHGRpwdfSgEiCfyYD0BaXVPfqJHC3m2HT7KqDu56YAlc0c+eJ7EMb8XoyFZCX/2lPczRJW68yT+9
(I only referred to the Require handling below when I said "module system",
but
probably should have used more precise terminology.
I think the rest of the module system is rather hard to use well [for someone
with basically no OCaml or SML background], but much of that is because Coq
resources usually don't teach you how to use it properly -- with the benefit
of
hindsight I think I would know better now how to design a library that
profitably uses the Coq module system. Oh and there's the problem that Coq is
very stateful so import order matters a lot, but I doubt that part is
inherited.)
; Ralf
On 18.09.20 16:54, Andrew Appel wrote:
> Oops, let me clarify.
>
> The sloppiness of Require paths, which is the subject of this thread, has
> bothered me for years. That's the +1.
>
> Regarding the Coq module system -- I love the Coq module system, which is
> based
> on the OCaml module system, which is based on the Standard ML module
> system, a
> landmark achievement in computer science developed primarily by David
> MacQueen
> between 1984 and 1995, with contributions from Mads Tofte and Xavier Leroy.
>
> -- Andrew
>
>
> --------------------------------------------------------------------------------
>
> *From: *"appel" <appel AT princeton.edu>
> *To: *"coq-club" <coq-club AT inria.fr>
> *Sent: *Friday, September 18, 2020 10:50:00 AM
> *Subject: *Re: [Coq-Club] option to disable partially qualified Require
> Imports
>
> +1
>
>
> --------------------------------------------------------------------------------
>
> *From: *"Ralf Jung" <jung AT mpi-sws.org>
> *To: *"coq-club" <coq-club AT inria.fr>, "Guillaume Melquiond"
> <guillaume.melquiond AT inria.fr>
> *Sent: *Friday, September 18, 2020 10:46:09 AM
> *Subject: *Re: [Coq-Club] option to disable partially qualified
> Require
> Imports
>
> Seriously though, I do not understand this attitude. No other
> language
> that I
> know of has a module system as strange as Coq's (maybe this is
> inherited
> from
> OCaml?), and yet you claim that it's the library author's fault for
> not
> taking
> care in designing their library to work around this quirk, rather
> than the
> language designer's fault for having designed something strange.
> (Probably the
> language designer had a good reason and this was solving a concrete
> problem, but
> putting the blame on the library is just unfair. And you haven't
> argued
> for why
> Coq's semantics make any sense, either.)
>
> This is not about malicious users, it is about people coming to Coq
> with
> what I
> consider reasonable expectations having their code break for reasons
> that are
> really hard to figure because Coq violates assumptions formed when
> learning
> pretty much any other language. Even the notoriously sloppy
> JavaScript
> requires
> precise imports! I still remember my surprise when I learned about
> "-R"
> semantics... it remains a mystery to me how it seemed like a good
> idea
> to just
> recursively slap everything into the global namespace. And then when
> "From ...
> Require" was introduced I was very surprised to learn about its path
> matching
> semantics, I had not even realized that regular "Require" was not
> doing
> full-path matching either. For what is otherwise a system that is
> extremely
> picky about which terms it accepts (for good reasons!), this stands
> out
> like a
> sore thumb.
>
> There probably is a reasonable explanation for this. But dismissing
> the
> concern
> as only affecting "dumb" users is not reasonable.
>
> Kind regards,
> Ralf
>
>
--
Website: https://people.mpi-sws.org/~jung/
- Re: [Coq-Club] option to disable partially qualified Require Imports, (continued)
- Re: [Coq-Club] option to disable partially qualified Require Imports, Ralf Jung, 09/18/2020
- Re: [Coq-Club] option to disable partially qualified Require Imports, Théo Zimmermann, 09/18/2020
- Re: [Coq-Club] option to disable partially qualified Require Imports, Gaëtan Gilbert, 09/18/2020
- Re: [Coq-Club] option to disable partially qualified Require Imports, Guillaume Melquiond, 09/18/2020
- Re: [Coq-Club] option to disable partially qualified Require Imports, Ralf Jung, 09/18/2020
- Re: [Coq-Club] option to disable partially qualified Require Imports, Guillaume Melquiond, 09/18/2020
- Re: [Coq-Club] option to disable partially qualified Require Imports, Abhishek Anand, 09/18/2020
- Re: [Coq-Club] option to disable partially qualified Require Imports, Ralf Jung, 09/18/2020
- Re: [Coq-Club] option to disable partially qualified Require Imports, Andrew Appel, 09/18/2020
- Re: [Coq-Club] option to disable partially qualified Require Imports, Andrew Appel, 09/18/2020
- Re: [Coq-Club] option to disable partially qualified Require Imports, Ralf Jung, 09/18/2020
- Re: [Coq-Club] option to disable partially qualified Require Imports, Gaëtan Gilbert, 09/18/2020
- Re: [Coq-Club] option to disable partially qualified Require Imports, Gaëtan Gilbert, 09/18/2020
- Re: [Coq-Club] option to disable partially qualified Require Imports, Guillaume Melquiond, 09/18/2020
- Re: [Coq-Club] option to disable partially qualified Require Imports, Ralf Jung, 09/18/2020
- Re: [Coq-Club] option to disable partially qualified Require Imports, Guillaume Melquiond, 09/18/2020
- Re: [Coq-Club] option to disable partially qualified Require Imports, jonikelee AT gmail.com, 09/18/2020
- Re: [Coq-Club] option to disable partially qualified Require Imports, Théo Zimmermann, 09/18/2020
- Re: [Coq-Club] option to disable partially qualified Require Imports, Ralf Jung, 09/18/2020
- Re: [Coq-Club] option to disable partially qualified Require Imports, Jeremy Dawson, 09/19/2020
- Re: [Coq-Club] option to disable partially qualified Require Imports, Théo Zimmermann, 09/19/2020
Archive powered by MHonArc 2.6.19+.