Commit graph

458 commits

Author SHA1 Message Date
Niko Matsakis
8a39bf029b wip 2024-07-16 06:04:01 -04:00
Niko Matsakis
612cec6703 wip 2024-07-15 20:29:36 -04:00
Niko Matsakis
4769e32d44 wip 2024-07-15 07:51:40 -04:00
Niko Matsakis
fdc363b65f wip 2024-07-15 07:46:23 -04:00
Niko Matsakis
57eb0c45b4 wip: iterate towards hello_world
Some checks failed
Book / Book (push) Has been cancelled
Test / Test (false, beta) (push) Has been cancelled
Test / Test (false, stable) (push) Has been cancelled
Test / Test (true, nightly) (push) Has been cancelled
Test / Miri (push) Has been cancelled
Book / Deploy (push) Has been cancelled
2024-07-14 13:49:59 -04:00
Niko Matsakis
231dc4f713 wip: inputs 2024-07-14 13:36:30 -04:00
Niko Matsakis
4c998c78e4 wip 2024-07-13 11:41:19 -04:00
Niko Matsakis
91cd757a90 macro for tracked struct 2024-07-13 07:56:14 -04:00
Niko Matsakis
a4e550065f autogenerate interned case 2024-07-13 07:01:31 -04:00
Niko Matsakis
dde7341f97 create macro-rules macros to encapsulate output
This is a new idea for how to manage procedural
macros, which I kind of hate.
2024-07-13 05:45:22 -04:00
Niko Matsakis
15106ff8ea reorganize plumbing 2024-07-12 07:11:31 -04:00
Niko Matsakis
65118a0fe6 Send + Sync requirements 2024-07-12 05:59:47 -04:00
Niko Matsakis
a1651c89d9 WIP 2024-07-11 21:35:37 -04:00
Niko Matsakis
2cfb75837b WIP 2024-07-11 07:30:26 -04:00
Niko Matsakis
15d5f213c5 WIP 2024-07-11 06:22:02 -04:00
Niko Matsakis
380b19cc39 remove debug_name from function ingredients 2024-07-06 08:42:15 -04:00
Niko Matsakis
aaf8f0bf4f remove debug_name field from interned 2024-07-06 08:40:09 -04:00
Niko Matsakis
204f4eea6f move struct debug name to Configuration 2024-07-06 08:34:59 -04:00
Niko Matsakis
e1920bdda6 require databases and ingredients to be static 2024-07-06 08:15:27 -04:00
Matthijs Brobbel
38070130a8
Remove some unused dependencies 2024-06-19 11:55:18 +02:00
Matthijs Brobbel
b3838b1ca7
Update book 2024-06-18 09:59:17 +02:00
Matthijs Brobbel
c7851112a5
Rename salsa-2022 to salsa 2024-06-18 09:40:21 +02:00
Matthijs Brobbel
db75ae00a2
Remove old salsa 2024-06-18 09:25:26 +02:00
Noah Lev
19b40c377f Add missing syn feature requirement
With the latest commit (283ccda), any project that uses Salsa hits tons
of internal errors within Salsa. That's because Salsa needs syn's `full`
feature, which was removed from the Cargo.toml as part of the Salsa 3.0
mega-PR. Because Salsa 1.0 still has the `full` feature in its
Cargo.toml, Cargo implicitly still enables `full` for Salsa 2022, and
thus the Salsa 2022 example projects compile fine -- even though any
external code using Salsa does not.
2024-06-17 13:36:37 -07:00
Niko Matsakis
1544ee97ce
Apply suggestions from code review
Co-authored-by: Micha Reiser <micha@reiser.io>
Co-authored-by: Ryan Cumming <etaoins@gmail.com>
Co-authored-by: David Barsky <me@davidbarsky.com>
2024-06-15 06:09:10 -04:00
Niko Matsakis
bcad24c7f1 add a safety comment on Update
This was not obvious to me initially.
2024-06-13 08:05:00 -04:00
Niko Matsakis
c02f30a4d6 remove dead code from interned structs 2024-06-11 05:24:47 -04:00
Niko Matsakis
f91eeb931d remove dead code
tracked structs only support `'db` lifetimes
2024-06-11 05:20:04 -04:00
Niko Matsakis
53266837af 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.
2024-05-30 09:46:20 -04:00
Niko Matsakis
ce750dadf5 allow elided lifetimes in tracked fn return values 2024-05-30 09:40:47 -04:00
Niko Matsakis
b9ab8fcebd rustfmt has opinions 2024-05-30 08:46:15 -04:00
Niko Matsakis
0ad0be8095 pacify the merciless clippy 2024-05-30 08:40:18 -04:00
Niko Matsakis
88b964d18d use const _: () to disable clippy lints 2024-05-30 08:40:18 -04:00
Niko Matsakis
07d0ead9f4 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.
2024-05-30 01:59:49 -04:00
Niko Matsakis
81942f37e5 use Alloc not Box
to avoid uniqueness guarantees
2024-05-27 07:39:46 -04:00
Niko Matsakis
ce88a8f9ca apply cargo fmt 2024-05-25 16:25:06 -04:00
Niko Matsakis
68502ab27f 'db all the things 2024-05-24 07:16:50 -04:00
Niko Matsakis
1560634f96 support methods with 'db lifetimes 2024-05-24 07:16:50 -04:00
Niko Matsakis
b005820494 add a derive for DebugWithDb 2024-05-24 07:16:50 -04:00
Niko Matsakis
4f4d01958f generate a custom std::fmt::Debug impl
This leads less representation information
and in particular avoids serializing pointers.
2024-05-24 07:16:50 -04:00
Niko Matsakis
d98485d3cb 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.
2024-05-24 07:16:50 -04:00
Niko Matsakis
2800076857 update to syn 2.0 2024-05-24 07:16:50 -04:00
Niko Matsakis
06b70975e9 impl Update/Send/Sync
and add dedicated tests for that
2024-05-24 07:16:50 -04:00
Niko Matsakis
b4b49fbd1b 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`.
2024-05-24 07:16:50 -04:00
Niko Matsakis
7519c3e2a6 extend IdentityInterner to be based on LookupId 2024-05-24 07:16:50 -04:00
Niko Matsakis
ab70786536 introduce LookupId trait
We are going to need it for tracked functions.
2024-05-24 07:16:50 -04:00
Niko Matsakis
cf2fa671f5 introduce IdLookup trait
We are going to need it for tracked functions.
2024-05-24 07:16:50 -04:00
Niko Matsakis
8d0f8fccbf remove unnecessary uses of AsId 2024-05-24 07:16:50 -04:00
Niko Matsakis
d361e8adfb add a 'db argument to SalsaStruct 2024-05-24 07:16:50 -04:00
Niko Matsakis
9607638d5d permit interned structs with lifetimes 2024-05-24 07:16:50 -04:00