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
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
Alexander McCord
aea86e5542
Ignoring my .clangd changes.
2024-05-18 01:04:04 -07:00
Alexander McCord
8dd9d42acb
Add .cache for clangd.
2024-05-17 20:30:49 -07:00
vegorov-rbx
fe0a819472
Sync to upstream/release/626 ( #1258 )
...
### New Type Solver
* Fixed crash in numeric binary operation type families
* Results of an indexing operation are now comparable to `nil` without a
false positive error
* Fixed a crash when a type that failed normalization was accessed
* Iterating on a free value now implies that it is iterable
---
### Internal Contributors
Co-authored-by: Aaron Weiss <aaronweiss@roblox.com>
Co-authored-by: Alexander McCord <amccord@roblox.com>
Co-authored-by: James McNellis <jmcnellis@roblox.com>
Co-authored-by: Vighnesh Vijay <vvijay@roblox.com>
2024-05-16 16:02:03 -07:00
Vighnesh-V
2a80f5e1d1
Sync to upstream/release/625 ( #1252 )
...
# What's changed?
* Fix warning issued when Cmake version is too low (contributed by OSS
community)
## New Solver
* Fix an issue with inhabitance testing of tables with cyclic properties
* Preserve error suppression during type unification
* Overhaul type reference counting in the constraint solver
* Other miscellaneous constraint ordering fixes
## Native Codegen
* Fix incorrect assertion check in loadBytecodeTypeInfo
---
## Internal Contributors
Co-authored-by: Aaron Weiss <aaronweiss@roblox.com>
Co-authored-by: Alexander McCord <amccord@roblox.com>
Co-authored-by: Andy Friesen <afriesen@roblox.com>
Co-authored-by: Vighnesh Vijay <vvijay@roblox.com>
Co-authored-by: Vyacheslav Egorov <vegorov@roblox.com>
---------
Co-authored-by: Aaron Weiss <aaronweiss@roblox.com>
Co-authored-by: Alexander McCord <amccord@roblox.com>
Co-authored-by: Andy Friesen <afriesen@roblox.com>
Co-authored-by: Aviral Goel <agoel@roblox.com>
Co-authored-by: David Cope <dcope@roblox.com>
Co-authored-by: Lily Brown <lbrown@roblox.com>
Co-authored-by: Vyacheslav Egorov <vegorov@roblox.com>
2024-05-10 11:21:45 -07:00
Bjorn
a775bbc6fc
Fix confusing warning when CMake version is too low ( #1251 )
...
Experienced brief moment of panic when this warning said I had clang 3
installed.
2024-05-10 03:36:37 -07:00
vegorov-rbx
905a37b928
Update native code generation note in the security guarantees ( #1250 )
2024-05-08 13:35:12 -07:00