Commit graph

1108 commits

Author SHA1 Message Date
Alexander McCord
a6b62ed0be Move Variant to Common and simplify Language. 2024-07-15 16:28:07 -07:00
Alexander McCord
f8be9c62fb This is hot loop. 2024-06-08 19:13:30 -07:00
Alexander McCord
5eccbbf15e These also needs cstddef. 2024-06-08 09:10:20 -07:00
Alexander McCord
3d9c7cb5c0 Need to include cstddef. 2024-06-08 09:06:57 -07:00
Alexander McCord
e48de639e1 Extract hashing stuff out of Language.h into LanguageHash.h 2024-06-08 08:54:45 -07:00
Alexander McCord
f84f7e7e4e Add EqSat to Makefile. 2024-06-08 08:54:20 -07:00
Alexander McCord
af684eebbf Don't const& this one. 2024-06-08 07:51:01 -07:00
Alexander McCord
d866a0d683 Let's align the buffer to the nearest alignment point, same as Luau::Variant. 2024-06-03 20:51:02 -07:00
Alexander McCord
7bab184b10 Clip comments from Language. It was here for me to prototype it. 2024-06-03 20:50:12 -07:00
Alexander McCord
a48adacea7 I don't need a linker language anymore. CMake can infer it. 2024-06-03 20:49:41 -07:00
Alexander McCord
7e3dc79d88 Undo this hack. 2024-06-03 20:37:12 -07:00
Alexander McCord
55a547fbbb Clip comment. 2024-06-03 18:38:34 -07:00
Alexander McCord
984fab25b4 End namespace comment. 2024-06-03 18:38:18 -07:00
Alexander McCord
1dc4fb389e constify operands stuff correctly. 2024-06-02 19:43:56 -07:00
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
7ba2821982 Change propositional language to make use of NODE_ARRAY. 2024-06-02 17:37:16 -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
ab81f39b83 Fix test suite name. 2024-06-01 13:09:38 -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