Skip to Content.
Sympa Menu

coq-club - [Coq-Club] correct offsets in .glob files when unicode characters are present

coq-club AT inria.fr

Subject: The Coq mailing list

List archive

[Coq-Club] correct offsets in .glob files when unicode characters are present


Chronological Thread 
  • From: Abhishek Anand <abhishek.anand.iitg AT gmail.com>
  • To: coq-club <coq-club AT inria.fr>
  • Subject: [Coq-Club] correct offsets in .glob files when unicode characters are present
  • Date: Thu, 23 Mar 2023 12:42:45 -0400
  • Authentication-results: mail2-smtp-roc.national.inria.fr; spf=None smtp.pra=abhishek.anand.iitg AT gmail.com; spf=Pass smtp.mailfrom=abhishek.anand.iitg AT gmail.com; spf=None smtp.helo=postmaster AT mail-wr1-f51.google.com
  • Ironport-data: A9a23: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
  • Ironport-hdrordr: A9a23:fl0uJ6rfLwCCycTyTEhNhDMaV5omeYIsimQD101hICG9E/bo8P xG+c5w6faaskdzZJhNo7C90cq7IE80l6QFg7X5VI3KNGLbUQCTXeRfBOXZslnd8u7FmtK1F5 0MT0GzMrLN5JFB4/rH3A==
  • Ironport-phdr: A9a23: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
  • Ironport-sdr: 641c81ab_DZgE1FOGZ1z3gCybB+zKftZD/8AYUhjUBM4UcguvU+gbaqQ A85XsXsFNUGMiHVHBDJgsnXk+8JRKRK9FlauZxg==

Consider A.v:

Require Import NArith.

Definition xxx2aaaaa :=2.
Lemma xx : 2 = 1+1.
Proof using.
  reflexivity.
Qed.

coqc produces the following A.glob file for it:
DIGEST 582ed5cc0da4be8a628fbad21346a25b
Fvok.A
R15:20 Coq.NArith.NArith <> <> lib
def 35:43 <> xxx2aaaaa
prf 56:57 <> xx
R62:64 Coq.Init.Logic <> ::type_scope:x_'='_x not
R66:66 Coq.Init.Peano <> ::nat_scope:x_'+'_x not

In particular, in A.glob, note the line starting with prf which says that the proof (lemma) xx
is defined at characters 56:57 in the file.
When I tell emacs to jump at character offset 56 (using (goto-char 56)) in A.v, it goes to the 
whitespace character just after "Lemma" in A.v, which is correct, e.g. when using for "jump to definition" of xx.

But when I start using unicode characters, this gets messed up.
Suppose that I now change the 'a' to \gamma in A.v:
Require Import NArith.

Definition xxx2γγγγγ :=2.
Lemma xx : 2 = 1+1.
Proof using.
  reflexivity.
Qed.

Now, coqc produces the following A.glob:

DIGEST fe6c13708e4f56188975fb9fe403c8a6
Fvok.A
R15:20 Coq.NArith.NArith <> <> lib
def 35:48 <> xxx2γγγγγ
prf 61:62 <> xx
R67:69 Coq.Init.Logic <> ::type_scope:x_'='_x not
R71:71 Coq.Init.Peano <> ::nat_scope:x_'+'_x not

Note that the offsets in the prf line got increased by 5, exactly the number
of unicode characters. Note that the position of "Lemma xx" in A.v hasn't changed: I just replaced characters, didn't move anything
Now, my .glob-file based jump to definition jumps at the wrong location.
For a file with a lot of unicode, this becomes very annoying.

Is there a way to get coqc to produce the "correct" offsets in .glob files:where it doesnt count unicode characters as multiple files?
Alternatively, is there some variant in goto-char in emacs that can account for the double counting of unicode characters?






Archive powered by MHonArc 2.6.19+.

Top of Page