-
Notifications
You must be signed in to change notification settings - Fork 152
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
salsa 3.0 #490
salsa 3.0 #490
Commits on May 24, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 225a81a - Browse repository at this point
Copy the full SHA 225a81aView commit details -
adopt the Salsa 3.0
Update
` traitRight now, this doesn't change much except the behavior in the event that `Eq` is not properly implemented. In the future, it will enable the use of references and slices and things.
Configuration menu - View commit details
-
Copy full SHA for 4533cd9 - Browse repository at this point
Copy the full SHA 4533cd9View commit details -
return
&TrackedStructValue<C>
fromnew_struct
This is a step towards the goal of keep a pointer in the structs themselves.
Configuration menu - View commit details
-
Copy full SHA for e24ace2 - Browse repository at this point
Copy the full SHA e24ace2View commit details -
separate marking the outputs as verified
There are 3 call-sites to this function: * One of them has already marked the outputs * One of them has no outputs * The third does need to mark the outputs
Configuration menu - View commit details
-
Copy full SHA for a320781 - Browse repository at this point
Copy the full SHA a320781View commit details -
give trait more info about lifetime relationships
In particular, the ingredient and the database have the same lifetime. This will be useful later for safety conditions.
Configuration menu - View commit details
-
Copy full SHA for 20cb307 - Browse repository at this point
Copy the full SHA 20cb307View commit details -
create a
struct_map
that encapsulates accessThe internal API is now based around providing references to the `TrackedStructValue`. Documenting the invariants led to one interesting case, which is that we sometimes verify a tracked struct as not having changed (and even create `&`-ref to it!) but then re-execute the function around it. We now guarantee that, in this case, the data does not change, even if it has leaked values. This is required to ensure soundness. Add a test case about it.
Configuration menu - View commit details
-
Copy full SHA for ea1d452 - Browse repository at this point
Copy the full SHA ea1d452View commit details -
Configuration menu - View commit details
-
Copy full SHA for 79d24e0 - Browse repository at this point
Copy the full SHA 79d24e0View commit details -
track and assert struct ingredient indices
We need a cheap way to compute field indices.
Configuration menu - View commit details
-
Copy full SHA for 5ce5e3c - Browse repository at this point
Copy the full SHA 5ce5e3cView commit details -
Configuration menu - View commit details
-
Copy full SHA for b6311d8 - Browse repository at this point
Copy the full SHA b6311d8View commit details -
Revert "WIP permit 'db on tracked struct definitions (opt)"
This reverts commit 43b1b8e.
Configuration menu - View commit details
-
Copy full SHA for cb1a2bb - Browse repository at this point
Copy the full SHA cb1a2bbView commit details -
Configuration menu - View commit details
-
Copy full SHA for 6e2647f - Browse repository at this point
Copy the full SHA 6e2647fView commit details -
remove Key from Fn configuration
Just use salsa::Id for the most part.
Configuration menu - View commit details
-
Copy full SHA for b050bd8 - Browse repository at this point
Copy the full SHA b050bd8View commit details -
Configuration menu - View commit details
-
Copy full SHA for 44a8a2f - Browse repository at this point
Copy the full SHA 44a8a2fView commit details -
Configuration menu - View commit details
-
Copy full SHA for e95c8b2 - Browse repository at this point
Copy the full SHA e95c8b2View commit details -
permit
<'db>
on tracked structtracked structs with `'db` carry a pointer and not an id.
Configuration menu - View commit details
-
Copy full SHA for a84777d - Browse repository at this point
Copy the full SHA a84777dView commit details -
Configuration menu - View commit details
-
Copy full SHA for fe4ff98 - Browse repository at this point
Copy the full SHA fe4ff98View commit details -
Configuration menu - View commit details
-
Copy full SHA for 04e041b - Browse repository at this point
Copy the full SHA 04e041bView commit details -
pipe debug output through rustfmt
is there a nicer way to do this?!
Configuration menu - View commit details
-
Copy full SHA for 4f74037 - Browse repository at this point
Copy the full SHA 4f74037View commit details -
generate configuration struct in salsa_struct
It will be shared between tracked structs and interned structs.
Configuration menu - View commit details
-
Copy full SHA for 8ba6e60 - Browse repository at this point
Copy the full SHA 8ba6e60View commit details -
move interned-specific fns out of salsa struct
Salsa struct is already a grab-bag, best to keep it to shared functionality.
Configuration menu - View commit details
-
Copy full SHA for 54c9586 - Browse repository at this point
Copy the full SHA 54c9586View commit details -
rework interning to have a Configuration
This will permit GATs so that interned values can carry lifetimes.
Configuration menu - View commit details
-
Copy full SHA for 97fc6a0 - Browse repository at this point
Copy the full SHA 97fc6a0View commit details -
update tests for new error messages
also fix name of a fn in one case
Configuration menu - View commit details
-
Copy full SHA for 3441666 - Browse repository at this point
Copy the full SHA 3441666View commit details -
We'll need these for use with tracked functions
Configuration menu - View commit details
-
Copy full SHA for d190beb - Browse repository at this point
Copy the full SHA d190bebView commit details -
Configuration menu - View commit details
-
Copy full SHA for 4822013 - Browse repository at this point
Copy the full SHA 4822013View commit details -
have tracked struct intern its own keys
Previously tracked structs relied on an interned ingredient to intern their keys. But really it has more complex logic than we need. Simpler to just remove it and duplicate the basic concept.
Configuration menu - View commit details
-
Copy full SHA for d6d5226 - Browse repository at this point
Copy the full SHA d6d5226View commit details -
Configuration menu - View commit details
-
Copy full SHA for af94b25 - Browse repository at this point
Copy the full SHA af94b25View commit details -
Configuration menu - View commit details
-
Copy full SHA for d92f2aa - Browse repository at this point
Copy the full SHA d92f2aaView commit details -
Configuration menu - View commit details
-
Copy full SHA for 5095d79 - Browse repository at this point
Copy the full SHA 5095d79View commit details -
rename from TrackedStruct to just Struct
this will let us use different packages but the same struct name from salsa struct
Configuration menu - View commit details
-
Copy full SHA for 0b8c27b - Browse repository at this point
Copy the full SHA 0b8c27bView commit details -
Configuration menu - View commit details
-
Copy full SHA for 9d8a60b - Browse repository at this point
Copy the full SHA 9d8a60bView commit details -
Configuration menu - View commit details
-
Copy full SHA for 9607638 - Browse repository at this point
Copy the full SHA 9607638View commit details -
Configuration menu - View commit details
-
Copy full SHA for d361e8a - Browse repository at this point
Copy the full SHA d361e8aView commit details -
Configuration menu - View commit details
-
Copy full SHA for 8d0f8fc - Browse repository at this point
Copy the full SHA 8d0f8fcView commit details -
We are going to need it for tracked functions.
Configuration menu - View commit details
-
Copy full SHA for cf2fa67 - Browse repository at this point
Copy the full SHA cf2fa67View commit details -
We are going to need it for tracked functions.
Configuration menu - View commit details
-
Copy full SHA for ab70786 - Browse repository at this point
Copy the full SHA ab70786View commit details -
Configuration menu - View commit details
-
Copy full SHA for 7519c3e - Browse repository at this point
Copy the full SHA 7519c3eView commit details -
split the Id conversion traits
We now have AsId (always present) and FromId/LookupId (sometimes present). AsId is no longer part of the salsa public interface. Replace the ad-hoc `salsa_id` etc methods with calls to `AsId::as_id`.
Configuration menu - View commit details
-
Copy full SHA for b4b49fb - Browse repository at this point
Copy the full SHA b4b49fbView commit details -
convert a test to use 'db in tracked functions
It works! Huzzah.
Configuration menu - View commit details
-
Copy full SHA for 56030df - Browse repository at this point
Copy the full SHA 56030dfView commit details -
Configuration menu - View commit details
-
Copy full SHA for 06b7097 - Browse repository at this point
Copy the full SHA 06b7097View commit details -
Configuration menu - View commit details
-
Copy full SHA for 2800076 - Browse repository at this point
Copy the full SHA 2800076View commit details -
add a derive for salsa::Update
And a test for it. This is required if you want to have structures in your tracked structs. Looks we need one for salsa::DebugWithDb, too.
Configuration menu - View commit details
-
Copy full SHA for d98485d - Browse repository at this point
Copy the full SHA d98485dView commit details -
generate a custom
std::fmt::Debug
implThis leads less representation information and in particular avoids serializing pointers.
Configuration menu - View commit details
-
Copy full SHA for 4f4d019 - Browse repository at this point
Copy the full SHA 4f4d019View commit details -
Configuration menu - View commit details
-
Copy full SHA for b005820 - Browse repository at this point
Copy the full SHA b005820View commit details -
Configuration menu - View commit details
-
Copy full SHA for 1560634 - Browse repository at this point
Copy the full SHA 1560634View commit details -
Configuration menu - View commit details
-
Copy full SHA for 68502ab - Browse repository at this point
Copy the full SHA 68502abView commit details
Commits on May 25, 2024
-
Configuration menu - View commit details
-
Copy full SHA for ce88a8f - Browse repository at this point
Copy the full SHA ce88a8fView commit details
Commits on May 26, 2024
-
Configuration menu - View commit details
-
Copy full SHA for a7b2805 - Browse repository at this point
Copy the full SHA a7b2805View commit details
Commits on May 27, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 81942f3 - Browse repository at this point
Copy the full SHA 81942f3View commit details -
Revert "WIP: temporarily add expanded version of test"
This reverts commit a7b2805.
Configuration menu - View commit details
-
Copy full SHA for 8c51f37 - Browse repository at this point
Copy the full SHA 8c51f37View commit details
Commits on May 30, 2024
-
return a NonNull instead of a
&'db
In old code, we converted to a `&'db` when creating a new tracked struct or interning, but this value in fact persisted beyond the end of `'db` (i.e., into the new revision). We now refactor so that we create the `Foo<'db>` from a `NonNull<T>` instead of a `&'db T`, and then only create safe references when users access fields. This makes miri happy.
Configuration menu - View commit details
-
Copy full SHA for 07d0ead - Browse repository at this point
Copy the full SHA 07d0eadView commit details -
Configuration menu - View commit details
-
Copy full SHA for 88b964d - Browse repository at this point
Copy the full SHA 88b964dView commit details -
Configuration menu - View commit details
-
Copy full SHA for 0ad0be8 - Browse repository at this point
Copy the full SHA 0ad0be8View commit details -
Configuration menu - View commit details
-
Copy full SHA for b9ab8fc - Browse repository at this point
Copy the full SHA b9ab8fcView commit details -
Configuration menu - View commit details
-
Copy full SHA for ce750da - Browse repository at this point
Copy the full SHA ce750daView commit details -
remove "setter" function altogether
This...seems dated. We have `specify` which is a more correct and principled version. Not sure what `set` was meant to be but I don't see any tests for it so...kill it.
Configuration menu - View commit details
-
Copy full SHA for 5326683 - Browse repository at this point
Copy the full SHA 5326683View commit details
Commits on Jun 11, 2024
-
Configuration menu - View commit details
-
Copy full SHA for f91eeb9 - Browse repository at this point
Copy the full SHA f91eeb9View commit details -
Configuration menu - View commit details
-
Copy full SHA for c02f30a - Browse repository at this point
Copy the full SHA c02f30aView commit details -
Configuration menu - View commit details
-
Copy full SHA for af2c973 - Browse repository at this point
Copy the full SHA af2c973View commit details
Commits on Jun 13, 2024
-
add a safety comment on
Update
This was not obvious to me initially.
Configuration menu - View commit details
-
Copy full SHA for bcad24c - Browse repository at this point
Copy the full SHA bcad24cView commit details -
WIP: start writing a safety chapter
Still debating the best structure, so the contents are rather scattershot. I may have found a hole, but it's...obscure and I'm comfortable with it for the time being, though I think we want to close it eventually.
Configuration menu - View commit details
-
Copy full SHA for ab9aa3a - Browse repository at this point
Copy the full SHA ab9aa3aView commit details
Commits on Jun 15, 2024
-
Apply suggestions from code review
Co-authored-by: Micha Reiser <[email protected]> Co-authored-by: Ryan Cumming <[email protected]> Co-authored-by: David Barsky <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 1544ee9 - Browse repository at this point
Copy the full SHA 1544ee9View commit details