Commit graph

42 commits

Author SHA1 Message Date
Alexander McCord
b25df642da Move the macros to be at the top. 2024-06-02 19:41:34 -07:00
Alexander McCord
56d4f52434 Fields shouldn't even be constructible. 2024-06-02 19:40:53 -07:00
Alexander McCord
ba53dd03dc Add LanguageHash<std::vector<T>>. 2024-06-02 19:34:09 -07:00
Alexander McCord
fd810237c3 Make operands be usable in const context. 2024-06-02 18:35:38 -07:00
Alexander McCord
bf62839634 Rework the API entirely. 2024-06-02 17:30:15 -07:00
Alexander McCord
ee62df2ffb Make a note here. 2024-06-02 09:27:24 -07:00
Alexander McCord
c7adc18911 join should be const. 2024-06-01 20:37:50 -07:00
Alexander McCord
2ef0ccd5e8 Enforce exhaustiveness of make. 2024-06-01 18:03:14 -07:00
Alexander McCord
26f1d18c81 Implement rebuild and show it works. 2024-06-01 16:33:51 -07:00
Alexander McCord
4183c31d23 Implement egraph merging of two ids. 2024-06-01 15:24:35 -07:00
Alexander McCord
15167ad497 Make Language noexcept and final. 2024-06-01 13:10:37 -07:00
Alexander McCord
4122f3fbcb Implement a basic version of Analysis. Will expand it later. 2024-05-28 08:31:25 -07:00
Alexander McCord
cd735ebad3 Slice is final. 2024-05-27 22:22:18 -07:00
Alexander McCord
6e996d1899 Start to implement some stuff according to pg 9. 2024-05-27 22:21:04 -07:00
Alexander McCord
bf51d9e613 This really should be an universal reference. 2024-05-27 21:14:18 -07:00
Alexander McCord
994efce30a Let's just call it add. 2024-05-27 20:52:19 -07:00
Alexander McCord
c8a1651c89 Implement Language::operands() which means EGraph is able to canonicalize. 2024-05-27 17:05:02 -07:00
Alexander McCord
d9835952b7 Improve Language::Hash too. 2024-05-26 22:31:59 -07:00
Alexander McCord
68efd51b56 It's not always Id. 2024-05-26 22:28:55 -07:00
Alexander McCord
f82e6d79a4 Probably should document this magic number. 2024-05-26 22:24:03 -07:00
Alexander McCord
f808ed2438 Inline DERIVE_EQ and DERIVE_HASH. 2024-05-26 22:18:25 -07:00
Alexander McCord
2fdc5c8f98 Add ADL-based hash resolution. 2024-05-26 22:17:28 -07:00
Alexander McCord
c189ed6d18 Rename a couple of type parameters to Phantom to make them clear. 2024-05-26 19:57:00 -07:00
Alexander McCord
ffb353aee9 Redundant static_assert. Rework it a smidge. 2024-05-26 19:51:39 -07:00
Alexander McCord
2a2de1cea2 Add nodes that can point to child enodes. 2024-05-26 19:47:27 -07:00
Alexander McCord
0d882367f7 Clip this comment. 2024-05-26 16:14:58 -07:00
Alexander McCord
1f05cf27c3 One more private label to section this off from the data part. 2024-05-26 15:47:56 -07:00
Alexander McCord
b574667c80 Language is also Hash. 2024-05-26 15:46:39 -07:00
Alexander McCord
38ccd662f2 Expand Language with variant stuff. 2024-05-26 15:21:08 -07:00
Alexander McCord
d6f553a794 Sketch out Language a little bit. Still WIP. 2024-05-26 13:12:27 -07:00
Alexander McCord
18726c1ed5 This violates ODR. Move implementation to header. 2024-05-26 12:06:24 -07:00
Alexander McCord
11f72000a9 Move std::hash specialization to header. 2024-05-26 12:04:58 -07:00
Alexander McCord
d13a86be41 Formatting. 2024-05-24 13:27:03 -07:00
Alexander McCord
603da12809 Just realized DenseHashMap doesn't make sense for Id and L.
We are unlikely to have an "empty" value for both Id and L, so we have to use `std::unordered_map` for now.
2024-05-24 13:26:30 -07:00
Alexander McCord
00a15a9e8c Add part of definition 2.2. 2024-05-24 13:26:25 -07:00
Alexander McCord
dd65db40ee Make sure some things aren't inherited. 2024-05-24 10:49:05 -07:00
Alexander McCord
cf712b316a Rename 3 fields. 2024-05-24 10:48:08 -07:00
Alexander McCord
b44c525f10 Got the type of hashcons wrong. Fixed. 2024-05-24 10:47:35 -07:00
Alexander McCord
640ead1b9e Not sure why Language was templated. Absent-minded me. 2024-05-19 11:38:11 -07:00
Alexander McCord
b235faf489 Implement UnionFind, just without ranks. 2024-05-18 15:49:06 -07:00
Alexander McCord
2338185296 Definition 2.1.1. 2024-05-18 15:26:57 -07:00
Alexander McCord
ab0d7c0387 Add Luau.EqSat project with some barebones.
I have to comment out the `add_subdirectory(fuzz)` in order to allow cmake to finish the configuring step on Windows.
2024-05-18 01:07:45 -07:00