Commit graph

12 commits

Author SHA1 Message Date
Ibraheem Ahmed
0414d89327
Replace loom with shuttle (#876)
* replace loom with shuttle

* inline `empty_cycle_heads`

* ignore failing shuttle test
2025-05-23 15:28:51 +00:00
Lukas Wirth
cfa88e9a4d
Move salsa event system into Zalsa (#849)
* Move salsa event system into `Zalsa`

* Encode `None` into ShallowUpdate

This shrinks the return value from 16 to 8 bytes
2025-05-07 11:45:49 +00:00
Micha Reiser
b27e3927e9
fix: Access to tracked-struct that was freed during fixpoint (#817)
* Add test for untracked read on tracked struct created in previous cycle

* Initial fix

* Restrict seeding to memos from the same revision

* Reduce changes

* seed_outputs

* Cleanup test

* Add assertion

* Try

* Try merging outputs after query executed

* Assert logs from first execution

* Enable trace level logging

* Use `FxIndexSet` in `diff_outputs`

* Log more events

* Cleanup

* Append outputs only once
2025-04-28 14:24:33 +00:00
Micha Reiser
f7eea9d69b
Use DatabaseKey for interned events (#813)
* Use `DatabaseKey` for interned events

* Tame clippy
2025-04-24 10:38:46 +00:00
Carl Meyer
87bf6b6c2d
add WillIterateCycle event (#790)
* add WillIterateCycle event

* add iteration_count and fell_back to event
2025-04-10 13:13:17 +00:00
Ibraheem Ahmed
a86db59e99
Enable Garbage Collection for Interned Values (#602)
* remove table-wide dependencies

* add plumbing to reuse interned slots

* record durabilities on interned values

* appease clippy

* remove immortal interned value logic

* pass correct revision when tracking interned reads

* force new revision when resetting interned values

* avoid unnecessary calls to `Database::zalsa`

* add log events for value internment

* Only log event kind because thread id can differ between runs/computers

* cargo fmt

---------

Co-authored-by: Micha Reiser <micha@reiser.io>
2025-03-17 09:23:14 +00:00
Carl Meyer
095d8b2b81
rewrite cycle handling to support fixed-point iteration (#603) 2025-03-10 22:25:47 +00:00
David Barsky
5f0904ae4a introduce parallel salsa 2024-11-25 11:29:24 -05:00
Niko Matsakis
4d2ccffddc return to the database-wrapping-storage setup 2024-08-04 02:18:54 -04:00
Niko Matsakis
a675810edf move local-state into DatabaseImpl
Each clone gets an independent local state.
2024-07-28 12:47:50 +00:00
Niko Matsakis
daaa78056a switch to new database design
Under this design, *all* databases are a
`DatabaseImpl<U>`, where the `U` implements
`UserData` (you can use `()` if there is none).

Code would default to `&dyn salsa::Database` but
if you want to give access to the userdata, you
can define a custom database trait
`MyDatabase: salsa::Databse` so long as you

* annotate `MyDatabase` trait definition of
  impls of `MyDatabase` with `#[salsa::db]`
* implement `MyDatabase` for `DatabaseImpl<U>`
  where `U` is your userdata (this could be a
  blanket impl, if you don't know the precise
  userdata type).

The `tests/common/mod.rs` shows the pattern.
2024-07-28 12:47:50 +00:00
Matthijs Brobbel
c7851112a5
Rename salsa-2022 to salsa 2024-06-18 09:40:21 +02:00
Renamed from salsa-2022-tests/src/lib.rs (Browse further)