Skip to Content.
Sympa Menu

coq-club - Re: [Coq-Club] option to disable partially qualified Require Imports

coq-club AT inria.fr

Subject: The Coq mailing list

List archive

Re: [Coq-Club] option to disable partially qualified Require Imports


Chronological Thread 
  • From: Andrew Appel <appel AT princeton.edu>
  • To: coq-club <coq-club AT inria.fr>
  • Subject: Re: [Coq-Club] option to disable partially qualified Require Imports
  • Date: Fri, 18 Sep 2020 10:50:00 -0400 (EDT)
  • Authentication-results: mail2-smtp-roc.national.inria.fr; spf=None smtp.pra=appel AT princeton.edu; spf=Pass smtp.mailfrom=appel AT cs.princeton.edu; spf=Pass smtp.helo=postmaster AT yellowcard.cs.princeton.edu
  • Ironport-phdr: 9a23:aIXMpxQ3Ny26NshKSlWTYIIkq9psv+yvbD5Q0YIujvd0So/mwa6zZRCN2/xhgRfzUJnB7Loc0qyK6v+mATJLv8nJ8ChbNsAVCVld0YRetjdjKfbNMVf8Iv/uYn5yN+V5f3ghwUuGN1NIEt31fVzYry76xzcTHhLiKVg9fbytScbdgMutyu+95YDYbRlWizqhe7NyKwi9oRnMusUMjoZuN6Q8xgHVrnZJdOhbxGFlLk+Xkxrg+8u85pFu/zlRtv4768JMTaD2dLkkQLJFCzgrL3o779DxuxnZSguP6HocUmEInRdNHgPI8hL0UIrvvyXjruZy1zWUMsPwTbAvRDSt9LxrRwPyiCcGLDE27mfagdFtga1BoRKhoxt/w5PIYIyQKfFzcL/Rcc8cSGFcWMtaSi5PDZ6mb4YXAeQPPfhWoYr/qFsAsBWxChWjBOLoxD9UnXL5x7E23Pg7HAzcwAAtHdQDu2nUotXvM6cSVPi4wbXOzTredfNZxzn845XUfxA5ufGDQ7ZwetfWxEY1DwPFlkufqYj+MjONzOQNsm6b4PZ+WuKzjG4nrRt9rSayyccxk4TEgJ8exV/Y+ytj2ok1OcG4R1BhYd6iCJZety6UO5V5T848QWxlvDo2x7wGtJKlcyUHx4gqyh7QZfGJfYWF7RHuWfuRLzplh39oZKyzihW8/0W81uHxVcm53VBXpSRGitnBrm0B2wLQ58SdV/dx41mt1SyS2w3d6+xIO0E5mKvDJ5I8wLM8iIAfvVrfEiPshkn6kK+bel8r9+S08+jrf6vqq5yGO4Nplw3yLL4iltGxDOk5KAQDX2qW9OKh37P550L5Wq9Fjvgun6nZrp/aIcMbq7a5AgBL1oYj7xG/Djm639sCh3kIMUhJdw6cj4TzI1HOOvH4DfGjjFuyjDdrwPbGMqf/DZrQM3jPiLbhfbBj5E5A0Ac/0M5T6pFOBr0cPf7/RFX9uMHWAxI4KQC5wufqBM141owEWGKPBqGZMLnVsV+N/u8gOfGMZJcLtzb5MPUq++XugWUhmV8HfKmp24cYZ26kHvRhJUWVe2TjjcocEWsSpAoxUPTqiEGeUT5Uf3u9Q6U85igiBI26CYfDW5uijaea3Ca7G51WfnpJBkqNEXfubYWEWu0DZDicIs97wXQ4Uu2qTJZk3hWzvkeuwL1+a+HQ5ycwtJT51dEz6feFxj8o8jkhJsKRyWySB0hshm4MD2s/xLhypWRl0FaF2qVkhPoeGNBOsaAaGjwmPILRmrQpQ+v5XRjMK4/QFQSWB+6+CDR0deofht8DZ0EnSoezgxTH2DWhCqUZ0beQQoQu86TX0mT2IYBwx2uUjfBw3WljedNGMCidvoA68gHSA4DTlEDAx/ShbuIExi/L/2qfymzIsU1FAlcpDff1GEsHb06TluzXo1vYRubzW6w9Mw1KxNKFLO1HZsC71Vg=

+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



Archive powered by MHonArc 2.6.19+.

Top of Page