Commit graph

1109 commits

Author SHA1 Message Date
Alexander McCord
201352eedf Consistently use struct. 2024-07-15 16:33:53 -07:00
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