Zulip Chat Archive
Stream: CI
Topic: unknown declaration `_private`
Riccardo Brasca (Jan 13 2022 at 13:24):
#11396 fails on continuous integration / Run tests (push)
with
<unknown>:1:1: error: unknown declaration '_private.3777865389.ne_from_not_eq'
Error: Process completed with exit code 1.
Anne Baanen (Jan 13 2022 at 13:26):
It reads as though a private
definition should become public somehow. Or maybe this is a hash collision?
Anne Baanen (Jan 13 2022 at 13:26):
Seems to be the same as this thread: https://leanprover.zulipchat.com/#narrow/stream/113488-general/topic/error.3A.20unknown.20declaration.20_private
Riccardo Brasca (Jan 13 2022 at 13:35):
ne_from_not_eq
esists as a private declaration (it is in src/tactic/norm_cast.lean
), but it seems unrelated to my PR...
Eric Rodriguez (Jan 13 2022 at 13:35):
this seems to be an error that pops up randomly. if you make any nonsense change in your commit, it should go away next push
Riccardo Brasca (Jan 13 2022 at 13:49):
Let me try
Riccardo Brasca (Jan 13 2022 at 14:14):
Mmm, I keep on getting the same error. I am trying to make the declaration public to see what happens.
Anne Baanen (Jan 13 2022 at 14:41):
I just got the same error :cry:
Eric Rodriguez (Jan 13 2022 at 14:47):
argh, what is going on... is it worth making detect_errors
temporarily dump the full commandline output to figure out what it is? i'm gonna try build one of these locally to see if I can get the error
Alex J. Best (Jan 13 2022 at 14:53):
I've been trying this for the past 10 mins or so
Alex J. Best (Jan 13 2022 at 14:54):
I can reproduce the error locally, but still not really any closer to diagnosing it
Eric Rodriguez (Jan 13 2022 at 14:55):
argh, yeah, the output isn't helpful diagnosing wise:
Gabriel Ebner (Jan 13 2022 at 15:13):
Or maybe this is a hash collision?
Can you try adding a space to src/tactic/doc_commands.lean
and see if this make CI happy?
Rob Lewis (Jan 13 2022 at 15:26):
This has been coming up rarely but periodically. I saw it the other day but didn't have time to diagnose
Rob Lewis (Jan 13 2022 at 15:26):
Merging master usually fixes it but a real diagnosis would be great!
Alex J. Best (Jan 13 2022 at 17:23):
I'm not sure if it's a diagnosis, more a sequence of observations but when I get riccardo's PR ea4acc9aba6d6d7033675705809a28b4acbc796a and get the mathlib cache the following fails lean --recursive --export=mathlib2.txt src/algebra/char_zero.lean --only-export=nat.cast_add_one_ne_zero
with error <unknown>:1:1: error: unknown declaration '_private.3777865389.ne_from_not_eq'
.
This is in the term of docs#nat.cast_add_one_ne_zero because that uses exact_mod_cast which uses its own private lemmas in its proofs.
The interesting thing is that many other oleans have ne_from_not_eq
in, grep gives me
Binary file .//src/tactic/norm_cast.olean matches
Binary file .//src/topology/metric_space/contracting.olean matches
Binary file .//src/analysis/complex/roots_of_unity.olean matches
Binary file .//src/analysis/special_functions/trigonometric/arctan.olean matches
Binary file .//src/analysis/special_functions/trigonometric/arctan_deriv.olean matches
Binary file .//src/analysis/special_functions/integrals.olean matches
Binary file .//src/analysis/special_functions/pow.olean matches
Binary file .//src/analysis/normed/group/quotient.olean matches
Binary file .//src/analysis/fourier.olean matches
Binary file .//src/number_theory/liouville/liouville_with.olean matches
Binary file .//src/number_theory/padics/ring_homs.olean matches
Binary file .//src/number_theory/padics/padic_norm.olean matches
Binary file .//src/number_theory/padics/padic_numbers.olean matches
Binary file .//src/number_theory/padics/padic_integers.olean matches
Binary file .//src/number_theory/bernoulli.olean matches
Binary file .//src/number_theory/modular.olean matches
Binary file .//src/number_theory/bernoulli_polynomials.olean matches
Binary file .//src/number_theory/pythagorean_triples.olean matches
Binary file .//src/number_theory/class_number/finite.olean matches
Binary file .//src/measure_theory/measure/hausdorff.olean matches
Binary file .//src/group_theory/free_abelian_group_finsupp.olean matches
Binary file .//src/group_theory/specific_groups/cyclic.olean matches
Binary file .//src/ring_theory/witt_vector/witt_polynomial.olean matches
Binary file .//src/ring_theory/witt_vector/frobenius.olean matches
Binary file .//src/ring_theory/witt_vector/structure_polynomial.olean matches
Binary file .//src/geometry/euclidean/monge_point.olean matches
Binary file .//src/data/complex/exponential.olean matches
Binary file .//src/data/real/ennreal.olean matches
Binary file .//src/data/real/pi/wallis.olean matches
Binary file .//src/data/real/pi/leibniz.olean matches
Binary file .//src/data/real/nnreal.olean matches
Binary file .//src/data/real/irrational.olean matches
Binary file .//src/data/nat/modeq.olean matches
Binary file .//src/data/rat/floor.olean matches
Binary file .//src/data/rat/basic.olean matches
Binary file .//src/data/polynomial/hasse_deriv.olean matches
Binary file .//src/algebra/char_p/invertible.olean matches
Binary file .//src/algebra/char_zero.olean matches
picking one of these other files like contracting.olean
and opening it in hexedit I see
5F 70 72 69 76 61 74 65 00 FF B5 BD BB 25 6E 65 5F 66 72 6F 6D 5F 6E 6F 74 5F 65 71
this is _private.3049110309.ne_from_not_eq
. (I'm sure there is an easier way to do this than hexedit lol but olean-rs wasn't working for me). This indeed references a somewhat consistent name as it is the same as in the output of lean --recursive --export=mathlib4.txt src/data/nat/cast.lean
, and all of these oleans I checked use 3049110309
not 3777865389
.
If I manually replace that tiny portion of src/algebra/char_zero.olean
with _private.3049110309.ne_from_not_eq
instead of _private.3777865389.ne_from_not_eq
(B5 BD BB 25
with E1 2D A6 AD
) then everything looks like it builds fine, at least lean --recursive --export=mathlib5.txt src/algebra/char_zero.lean
then works.
The question seems to be why does one olean think the private name is one thing, while all the others think its different
Riccardo Brasca (Jan 13 2022 at 17:25):
I confirm that merging master fixed the problem.
Last updated: Dec 20 2023 at 11:08 UTC