Zulip Chat Archive
Stream: mathlib4
Topic: using binport only
Jakob von Raumer (Jul 14 2022 at 14:55):
I want to use the binported .olean
s in a project of mine. I added
require mathlib3port from git "https://github.com/leanprover-community/mathlib3port"
to my lake file, and tried
import Mathbin.AlgebraicGeometry.Scheme
#lookup3 algebraic_geometry.Scheme
#check AlgebraicGeometry.Scheme
as recommended by the mathport readme, but all I get is a unknown package 'Mathlib'
on the import and it doesn't seem to use the oleans but instead wants to load the synported files (?). What am I doing wrong?
Alexander Bentkamp (Jul 14 2022 at 15:08):
Try import Mathbin
instead. See also our discussion here:
https://leanprover.zulipchat.com/#narrow/stream/270676-lean4/topic/unknown.20package.20Mathlib
Alexander Bentkamp (Jul 14 2022 at 15:10):
I don't know if this should be fixed in the mathport readme or in lake. But one of them must be wrong I think :-)
Alexander Bentkamp (Jul 14 2022 at 15:10):
@Mac @Gabriel Ebner
Alexander Bentkamp (Jul 14 2022 at 15:15):
Why do you think it's using the synported files? Maybe because when you click on the import you land in the synported files? I think that's intended and you are just being redirected there although internally the binport is used. That's what's happening for me at least.
Mac (Jul 14 2022 at 16:11):
The binported oleans (e.g., Mathbin.AlgebraicGeometry.Scheme
) import Mathlib
and will thus break if Mathlib is not built and on the LEAN_PATH
. The binported mathlib package (e.g., mathlib3port
) does require mathlib
, so Lake knows to add mathlib's olean directory to LEAN_PATH
. However, Lake only builds modules on-demand. That is, when they are imported. Lake determines this by processing a module's header (i.e., the imports at the top of the file) to know what imports a given module (e.g., your test code) makes. Since you only import Mathbin.AlgebraicGeometry.Scheme
, that is all Lake ensures is built. And since that file only has an olean and no source file, Lake is unable to determine its imports to build them. Thus, Mathlib
does not get built, which causes the error here. To fix this, you need to import Mathlib
in your test file or import a file that syntatically imports Mathlib
(e.g., Mathbin
).
Jakob von Raumer (Jul 14 2022 at 19:58):
Thanks! That should do it, I'll test it tomorrow
Jakob von Raumer (Jul 14 2022 at 20:10):
Still the same errors... it also gives me warning:
extraDepTarget has been deprecated. Try to use a custom target or raise an issue about your use case.
, is that related?
Jakob von Raumer (Jul 14 2022 at 20:13):
Oh it seems Mathlib
just throws errors (on nightly 7-12)
Jakob von Raumer (Jul 14 2022 at 20:22):
Ah no, the error message has changed, it's now object file './lean_packages/mathlib/build/lib/Mathlib.olean' of module Mathlib does not exist
. :thinking:
Jakob von Raumer (Jul 14 2022 at 20:27):
I'm confused. I can clone and build mathlib4 with nightly 7-12 without errors, but if I import it via lake with a toolchain bound to the same Lean version, it throws errors concerning Syntax
vs TSyntax
which suggests it uses the wrong Lean version
Arthur Paulino (Jul 14 2022 at 20:32):
Did you have a different version of the dependency already downloaded? In that case, try running lake update
Jakob von Raumer (Jul 14 2022 at 20:38):
I did try lake update
... Should I remove mathlib4 from my dependencies? They currently looked like this:
require mathlib from git "https://github.com/leanprover-community/mathlib4"
require mathlib3port from git "https://github.com/leanprover-community/mathlib3port"
Jakob von Raumer (Jul 14 2022 at 20:40):
Maybe I should try removing the lake_packages
folder by hand
Jakob von Raumer (Jul 14 2022 at 20:42):
Neither lake update
nor removing lake_packages
nor removing mathlib
from the lake file helped :confused:
Jakob von Raumer (Jul 14 2022 at 20:44):
If I open the mathlib file that throws the error it compiles just fine
Jakob von Raumer (Jul 14 2022 at 20:45):
This is the full first error:
info: > LEAN_PATH=./lean_packages/mathlib3port/build/lib:./build/lib:./lean_packages/mathlib/build/lib:./lean_packages/lean3port/build/lib LD_LIBRARY_PATH=/home/javra/.elan/toolchains/leanprover--lean4---nightly-2022-07-12/lib:./lean_packages/mathlib3port/build/lib:./build/lib:./lean_packages/mathlib/build/lib:./lean_packages/lean3port/build/lib:./lean_packages/mathlib/build/lib /home/javra/.elan/toolchains/leanprover--lean4---nightly-2022-07-12/bin/lean ./lean_packages/mathlib/././Mathlib/Tactic/RestateAxiom.lean -R ./lean_packages/mathlib/./. -o ./lean_packages/mathlib/build/lib/Mathlib/Tactic/RestateAxiom.olean -i ./lean_packages/mathlib/build/lib/Mathlib/Tactic/RestateAxiom.ilean -c ./lean_packages/mathlib/build/ir/Mathlib/Tactic/RestateAxiom.c
error: stdout:
./lean_packages/mathlib/././Mathlib/Util/LibraryNote.lean:27:40: error: invalid field 'isStrLit?', the environment does not contain 'Lean.TSyntax.isStrLit?'
title
has type
TSyntax `str
error: external command /home/javra/.elan/toolchains/leanprover--lean4---nightly-2022-07-12/bin/lean exited with status 1
Arthur Paulino (Jul 14 2022 at 21:17):
What are the dependencies of those packages? Are they all using the same toolchain?
Jakob von Raumer (Jul 14 2022 at 21:59):
No, mathlib4 uses 07-12 and mathlib3port uses 06-13, so there might be some real incompatibility to the current lean :disappointed:
Arthur Paulino (Jul 14 2022 at 22:35):
You could try to find an older mathlib4 commit that uses that same toolchain, or something close enough to avoid conflicts
Mac (Jul 14 2022 at 23:02):
Jakob von Raumer said:
No, mathlib4 uses 07-12 and mathlib3port uses 06-13, so there might be some real incompatibility to the current lean :disappointed:
Yeah, you should be using the 06-13 nightly if you want to use Mathbin
Mac (Jul 14 2022 at 23:04):
You don't need to figure out what mathlib it requires, mathbin already specifies that. Simply require
'ing mathlib3port
and importing Mathlib
should be enough.
Jakob von Raumer (Jul 15 2022 at 07:22):
Rest of the project needs TSyntax
unfortunately, so I'll have to wait for the lean version bump (or do it myself :grinning: )
Gabriel Ebner (Jul 15 2022 at 07:54):
Yes, the Lean version needs to match exactly. The mathport releases contain the oleans after all. It's already a wonder if the source code compiles with two different Lean versions, binary compatibility is pretty much a lost cause.
Thomas Murrills (Sep 27 2022 at 02:47):
I have the same goal (use just binported mathlib files in a lean 4 project) and I'm also running into a bit of a wall with this. I've tried lake update
and lake build
, but upon having import Mathlib
in my project, I get a very long error:
Long Error
Any idea what could be going on? I have require mathlib3port from git
"https://github.com/leanprover-community/mathlib3port"
in my lakefile, and import Mathlib
at the top of my top-level project-named lean file. (I'm not sure if I'm structuring that correctly; just starting out with lean!)
And @Gabriel Ebner , when you say the lean version needs to match, do you mean that the lean version specified in the leanpkg.toml
file needs to match the version used by mathlib3port
?
Gabriel Ebner (Sep 27 2022 at 03:14):
Yeah that looks like a version mismatch.
Thomas Murrills (Sep 27 2022 at 03:24):
Ok, thanks! I'm actually having a bit of trouble fixing it, though. This suggests I use leanpkg configure
, but I get the following error:
error: toolchain 'leanprover/lean4:nightly-2022-09-25' does not have the binary /Users/thomas/.elan/toolchains/leanprover--lean4---nightly-2022-09-25/bin/leanpkg
Perhaps I've chosen the wrong lean_version
string (which I've naively set to "leanprover/lean4:nightly-2022-09-13"
)...?
Gabriel Ebner (Sep 27 2022 at 03:32):
Leanpkg is long obsolete. I'd try the following:
rm -rf lean_packages
lake update
cp lean_packages/mathlib/lean-toolchain .
Thomas Murrills (Sep 27 2022 at 03:41):
Hmm, thanks, that definitely did something! Now, with "leanprover/lean4:nightly-2022-09-13"
as my lean_version
, I get an error starting with "/Users/thomas/.elan/toolchains/leanprover--lean4---nightly-2022-09-11/bin/lake print-paths Init Mathlib
failed" instead, which I'll count as progress. Do you know how I might find the correct version to use here?
Mario Carneiro (Sep 27 2022 at 03:42):
what is this lean_version
field? AFAIK lake doesn't use that, it uses a lean-toolchain
file at the root
Mario Carneiro (Sep 27 2022 at 03:43):
you should use the same lean-toolchain
version present in the version of mathlib4 you are using
Thomas Murrills (Sep 27 2022 at 03:45):
Oh, maybe that's my problem. The lean_version
field is in leanpkg.toml
. Is that whole file obselete/unneeded now? (I may have been following an out-of-date guide...)
Mario Carneiro (Sep 27 2022 at 03:45):
the whole file is unused
Thomas Murrills (Sep 27 2022 at 03:45):
gotcha, thanks!
Thomas Murrills (Sep 27 2022 at 03:45):
let's see if the lean-toolchain
thing works...
Mario Carneiro (Sep 27 2022 at 03:45):
lake gets its data from lakefile.lean
and lean-toolchain
Thomas Murrills (Sep 27 2022 at 03:51):
Ok, it looks like my leantoolchain
matches mathlib3port
's toolchain (leanprover/lean4:nightly-2022-09-11
) but I'm still getting what seems to me to be basically the same message. Here it is again in case it's slightly different:
Long Error
Thomas Murrills (Sep 27 2022 at 03:52):
Somehow the error got much longer, so that's just a sample. I suppose it must be a different error, on some level...
Mario Carneiro (Sep 27 2022 at 03:53):
mathlib4, not mathlib3port
Mario Carneiro (Sep 27 2022 at 03:53):
what's in your lean_packages/manifest.json
file?
Thomas Murrills (Sep 27 2022 at 03:54):
Oh, ok, an earlier message suggested this: "simply require
'ing mathlib3port and importing Mathlib should be enough" so that's what I was going off of!
Thomas Murrills (Sep 27 2022 at 03:54):
Let's find out...
Thomas Murrills (Sep 27 2022 at 03:55):
Here it is:
manifest.json
Mario Carneiro (Sep 27 2022 at 03:57):
You have the latest commit of std4
there, which is on 09-26, so I don't think it will play well with mathlib3port from 09-11
Thomas Murrills (Sep 27 2022 at 03:58):
Hmm, that's strange. I did just rm -rf
this.
Mario Carneiro (Sep 27 2022 at 03:58):
well mathlib3port hasn't been released in a while
Mario Carneiro (Sep 27 2022 at 03:58):
so it's probably not your fault
Thomas Murrills (Sep 27 2022 at 04:00):
Huh, ok. Is std
coming...via mathlip3port
, so to speak? Or from somewhere else? Is there any way to force it to play nice?
Mario Carneiro (Sep 27 2022 at 04:00):
lean4 -> std4 -> mathlib4 -> mathlib3port
Thomas Murrills (Sep 27 2022 at 04:00):
I see
Mario Carneiro (Sep 27 2022 at 04:01):
I think you are likely to have best results using the 09-26 nightly
Thomas Murrills (Sep 27 2022 at 04:01):
I would have thought using a 2022-9-11
lean toolchain would have prevented that, though?
Mario Carneiro (Sep 27 2022 at 04:01):
since mathlib3port doesn't make much use of lean features
Thomas Murrills (Sep 27 2022 at 04:02):
Ok, that's what I started with—but then is there a way to make it work with mathlib binaries?
Mario Carneiro (Sep 27 2022 at 04:02):
building std4 on 09-11 is not going to work, it uses features from the future
Mario Carneiro (Sep 27 2022 at 04:02):
the alternative is to check out an old version of the dependencies, that is, use whatever version there was on 09-11
Thomas Murrills (Sep 27 2022 at 04:03):
I think that's what I'd like to do if it's the only way to use the mathlib binaries—if there's another way I'm all ears though
Mario Carneiro (Sep 27 2022 at 04:04):
std4 -> 6488a2afeb62fb4c781d26d629796480c8270b2f
mathlib4 -> dd1ecc5d3aefab6a83767079c7d020f4aa254a24
Mario Carneiro (Sep 27 2022 at 04:04):
put those in your manifest
Thomas Murrills (Sep 27 2022 at 04:05):
oo ok great! (Aside: I also would have naively thought specifying a toolchain date would have prevented using features from the future, though. my lean-toolchain
is leanprover/lean4:nightly-2022-09-11
, so I'd expect it to only use things from then or earlier in the "lean4 ->" stage.)
Mario Carneiro (Sep 27 2022 at 04:05):
yeah, lake isn't very good at managing the lean toolchain version
Mario Carneiro (Sep 27 2022 at 04:06):
it just uses whatever you specify and hopes for the best
Thomas Murrills (Sep 27 2022 at 04:06):
ah gotcha lol
Thomas Murrills (Sep 27 2022 at 04:06):
Ok, is it lake update
now?
Mario Carneiro (Sep 27 2022 at 04:07):
Asking for the versions to match exactly is also problematic though, because there's a new version every day and maintainers can't keep up with that pace
Mario Carneiro (Sep 27 2022 at 04:07):
most of the time whatever changes there were are not relevant to the library
Mario Carneiro (Sep 27 2022 at 04:07):
lake update
will update the manifest to the latest version of everything, which will undo the work you just did
Thomas Murrills (Sep 27 2022 at 04:08):
ah! I understand now haha
Thomas Murrills (Sep 27 2022 at 04:14):
ok, I've tried deleting everything but the manifest and rebuilding, but now it doesn't like any of the imports in lean_packages/std/Std.lean
either...hmmm
Thomas Murrills (Sep 27 2022 at 04:16):
hmm, the lean_packages/std/lean-toolchain
is still the 9-26
nightly build
Thomas Murrills (Sep 27 2022 at 04:18):
(and as far as I can tell no update has taken place; 6488a2afeb62fb4c781d26d629796480c8270b2f
is still in the manifest)
Thomas Murrills (Sep 27 2022 at 04:30):
does lake
actually use the manifest or is it meant to be more of a record? if it does use it, I'm not sure why this isn't working...hmmm. perhaps this can be fixed by fixing lake
somehow...I'm going to investigate tomorrow :) (I also wonder if people would agree that this needs to be fixed in lake
. my argument would be that the point of having versioned toolchains is to prevent breaking changes like this! :) )
Thomas Murrills (Sep 27 2022 at 04:39):
anyway thanks to both of you for all of your help so far! :) I’m not giving up…we’ll figure this out eventually!
James Gallicchio (Sep 27 2022 at 04:54):
There is some ongoing discussion (here and here) about precisely this issue... the answer isn't straightforward
Mario Carneiro (Sep 27 2022 at 04:55):
lake checks out the commit in the manifest first thing when you run lake build
, at least in my experience
Mario Carneiro (Sep 27 2022 at 04:55):
but one way to be sure is to copy the manifest file, delete the lean_packages
folder entirely, restore the manifest and call lake build
Mario Carneiro (Sep 27 2022 at 04:57):
(that file should really not be in the lean_packages
folder)
James Gallicchio (Sep 27 2022 at 04:57):
I'm not even confident that's the case, given how I'm now observing lake changing my manifest without me asking it to. Just haven't had time to investigate why
Thomas Murrills (Sep 28 2022 at 03:53):
but one way to be sure is to copy the manifest file, delete the lean_packages folder entirely, restore the manifest and call lake build
Hmm...I moved the modified manifest.json
to the top level of the project and rm -rf
'd lean_packages
and build
, then called lake build
. This generated a new manifest inside the created lean_packages
, and still used a std
that had a 9-26
toolchain, unfortunately :/
Mario Carneiro (Sep 28 2022 at 04:03):
you have to restore the manifest before calling lake build
Thomas Murrills (Sep 28 2022 at 04:03):
what does it mean to restore a manifest?
Mario Carneiro (Sep 28 2022 at 04:03):
put the file you copied back where it was
Thomas Murrills (Sep 28 2022 at 04:03):
it was in lean_packages
, though
Mario Carneiro (Sep 28 2022 at 04:04):
so that nuking the lean_packages folder doesn't also nuke your changes
Mario Carneiro (Sep 28 2022 at 04:05):
That is, you want to delete everything in lean_packages
except the manifest that is the only record that you are interested in something other than the latest version
Thomas Murrills (Sep 28 2022 at 04:06):
right, ok; I had tried that last night already, as it happens
Thomas Murrills (Sep 28 2022 at 04:06):
what I hadn't tried was keeping it outside the folder
Mario Carneiro (Sep 28 2022 at 04:07):
if you run lake build
with a lean_packages
folder that only has the modified manifest in it and nothing else, in my experience lake will respect it and download the right versions
Thomas Murrills (Sep 28 2022 at 04:07):
I did find something weird playing around (well, weird since I don't know what it means, lol): changing inputRev
in the manifest seems to successfully change the std
that gets cloned to one with a 9-11
toolchain
Thomas Murrills (Sep 28 2022 at 04:07):
gotcha; I just tried it again, and unfortunately deleting everything but the manifest in lean_packages
didn't work :/
Mario Carneiro (Sep 28 2022 at 04:08):
I usually update the "rev"
field, this should make lake download the version
Thomas Murrills (Sep 28 2022 at 04:09):
Yeah, that's what I had been trying already
Thomas Murrills (Sep 28 2022 at 04:09):
(which wasn't working, so I tried changing the inputRev
as well)
Mario Carneiro (Sep 28 2022 at 04:09):
and it's updating the rev?
Thomas Murrills (Sep 28 2022 at 04:10):
so to be clear, if this is in my manifest
{"url": "https://github.com/leanprover/std4",
"rev": "6488a2afeb62fb4c781d26d629796480c8270b2f",
"name": "std",
"inputRev": "main"}
it doesn't work; clones a version of std
with lean-toolchain
leanprover/lean4:nightly-2022-09-26
, which isn't consistent with rev 6488a2afeb62fb4c781d26d629796480c8270b2f
of std
on github.
Mario Carneiro (Sep 28 2022 at 04:12):
It is downloading 6488a2
though?
Thomas Murrills (Sep 28 2022 at 04:13):
no, it's not; if it were, the lean-toolchain
in std
ould be for 9-11
Mario Carneiro (Sep 28 2022 at 04:13):
what version is it?
Mario Carneiro (Sep 28 2022 at 04:13):
it says "downloading version XYZ" when it goes to github
Thomas Murrills (Sep 28 2022 at 04:14):
hmm, do I need a verbose option for lake build
or something? currently it just says info: cloning https://github.com/leanprover/std4 to ./lean_packages/std
Mario Carneiro (Sep 28 2022 at 04:15):
specifically, I get a message like
info: updating ./lean_packages/std to revision 6488a2afeb62fb4c781d26d629796480c8270b2f
when I change the manifest and run lake build
Thomas Murrills (Sep 28 2022 at 04:15):
actually, ok, something else very weird: it updates the manifest without me touching it
Thomas Murrills (Sep 28 2022 at 04:15):
and you have "inputRev": "main"
as well?
Mario Carneiro (Sep 28 2022 at 04:15):
yes
Thomas Murrills (Sep 28 2022 at 04:16):
hmmmm
Mario Carneiro (Sep 28 2022 at 04:17):
oh, no when I delete the directory entirely it doesn't report the revision
Mario Carneiro (Sep 28 2022 at 04:18):
but if you go inside lean_packages/std/
and run git rev-parse HEAD
it will report the revision
Thomas Murrills (Sep 28 2022 at 04:18):
hmm yep, that gives me 52c2324923b7f83e4e9b82ca9c8284f7a86bd3e8
Mario Carneiro (Sep 28 2022 at 04:19):
what happens if you git checkout 6488a2afeb62fb4c781d26d629796480c8270b2f
and change the manifest to match?
Mario Carneiro (Sep 28 2022 at 04:19):
this is really weird
Thomas Murrills (Sep 28 2022 at 04:20):
ok VERY strange
Thomas Murrills (Sep 28 2022 at 04:21):
i successfully checked out:
Previous HEAD position was 52c2324 feat: use simp trace support in simpNF linter
HEAD is now at 6488a2a chore: update nightly 09-11 (#7)
cd
'd back up to the project level, changed the rev
in the manifest and made sure to save it; lake build
then changed the manifest back as I watched :sweat_smile:
Mario Carneiro (Sep 28 2022 at 04:22):
what's in the lakefile.lean
?
Thomas Murrills (Sep 28 2022 at 04:22):
lakefile.lean
Thomas Murrills (Sep 28 2022 at 04:23):
(The only thing I changed/added was the require
statement)
Thomas Murrills (Sep 28 2022 at 04:24):
now, for whatever reason, if I change inputRev
(and maybe this is obvious; I don't yet know what inputRev
means) I get the messages
warning: std: revision `6488a2afeb62fb4c781d26d629796480c8270b2f` listed in manifest does not match `main` listed in the configuration file; you may wish to run `lake update` to update
info: updating ./lean_packages/std to revision 6488a2afeb62fb4c781d26d629796480c8270b2f
Thomas Murrills (Sep 28 2022 at 04:25):
and then indeed the revision is reported by git rev-parse HEAD
as 6488a2afeb62fb4c781d26d629796480c8270b2f
. however, nothing works this time either, because of the mismatch between the configuration files
Mario Carneiro (Sep 28 2022 at 04:26):
inputRev
means the revision specified in the input i.e. in the lakefile
Mario Carneiro (Sep 28 2022 at 04:27):
because the only thing better than global mutable state is having that state in two places that have to match
Thomas Murrills (Sep 28 2022 at 04:27):
haha yes
Thomas Murrills (Sep 28 2022 at 04:28):
so I'm guessing something's up with how lake
uses
@[defaultTarget]
lean_exe moonshine {
root := `Main
}
?
Thomas Murrills (Sep 28 2022 at 04:32):
because if I sort of..."disconnect" std
's manifest entry from its inputRev
, I don't get the weird behavior. so somehow I'm guessing...if lake build
sees main
, it decides to update the manifest entry and std
, presumably in accordance with something determined by what it saw there, i.e. main
?
Thomas Murrills (Sep 28 2022 at 04:36):
and for whatever it's worth, if i just straight up delete the inputRev
key from the std
entry in the manifest, I still get an error on import Mathlib
, but it's this:
Long Error
Mario Carneiro (Sep 28 2022 at 04:38):
So this code looks pretty suspicious
let shouldUpdate :=
match entry.inputRev?, depEntry.inputRev? with
| none, none => entry.rev != depEntry.rev
| none, some _ => false
| some _, none => false
| some rev, some dep => rev = dep ∧ entry.rev ≠ depEntry.rev
let contributors := entry.contributors.insert depPkg.name depEntry.toPersistentPackageEntry
modify (·.insert {entry with contributors, shouldUpdate})
Thomas Murrills (Sep 28 2022 at 04:38):
oooo
Mario Carneiro (Sep 28 2022 at 04:39):
Note that the function there was passed a shouldUpdate
flag which isn't being checked here
Mario Carneiro (Sep 28 2022 at 04:39):
shouldUpdate
is false when running lake build
Mario Carneiro (Sep 28 2022 at 04:40):
From the looks of that match, it seems that it decides to update in response to a mismatch of rev
fields in a dependency
Mario Carneiro (Sep 28 2022 at 04:41):
cc: @Mac
Thomas Murrills (Sep 28 2022 at 05:05):
just in case it helps debug things, here's verbose output (lake -v build
) for one of the "weird" instances, where inputRev
is main
, and where the rev
is mysteriously changed from 6488a2...
to 52c232...
. This started with only a modified lean_packages/manifest.json
and no other files.
verbose build
Thomas Murrills (Sep 28 2022 at 18:40):
One thing I'm noticing: each of the generated lean3port
, mathlib
, mathlib3port
directories within lean_packages
have their own lean_packages
directories within them, containing nothing but a manifest.json
file. Should the rev
s in this manifest be reflected at the top level as well? They seem to use rev 1f3f0630659a96756377610db656253b18a6a7ee
of std
, instead of either of the two that have been tried so far.
Mac (Sep 28 2022 at 20:07):
Mario Carneiro said:
From the looks of that match, it seems that it decides to update in response to a mismatch of
rev
fields in a dependency
Yes, that is the goal. See this comment on lake#120 for more information. I think the underlying problem is actually the one mentioned in lake#119 here.
Mario Carneiro (Sep 28 2022 at 20:12):
@Mac I don't suppose the lake dependency resolution algorithm could be documented somewhere in plain text in the documentation? It seems worth an RFC in case it's not actually doing what we want. Currently I have difficulty reading the code because I know neither what it is supposed to do nor what the invariants of the internal data structures are when processing all the dependencies.
Mac (Sep 28 2022 at 20:15):
@Mario Carneiro Yeah, this is a good idea. I definitely think that I now need to fix these bugs ASAP (hopefully by this weekend). While doing so, I can also write-up some doc on how I see it working. Feel free to also create issue requesting the docs on GitHub with anything you want to make sure I include. I can tell you the current approach is a bit haphazard as it has been mostly developed from me addressing @Gabriel Ebner 's feature requests.
Mario Carneiro (Sep 28 2022 at 20:16):
Quick question in regards to something I brought up above: why does the inputRev
field exist? The input revision should presumably be in the lakefile.
Mac (Sep 28 2022 at 20:17):
@Mario Carneiro lake#85
Last updated: Dec 20 2023 at 11:08 UTC