Commit graph

9 commits

Author SHA1 Message Date
Alexander McCord
e1bf6289c7
Equality graphs (#1285)
Working towards a full e-graph implementation as described by the [egg
paper](https://arxiv.org/pdf/2004.03082).

The type system has a couple of places where e-graphs would've been
useful and solved some classes of problems trivially. For example:

1. Normalization and simplification cannot handle cyclic types due to
the nature of their implementation.
2. Normalization can't tell when two tables or functions are equivalent,
but simplification theoretically can albeit not implemented.
3. Normalization requires deep normalization for inhabitance check,
whereas simplification would've returned the `never` type itself
indicating uninhabited.
4. Simplification requires constraint ordering to have perfect timing to
simplify.
5. Adding a rewrite rule requires implementing it twice, once in
simplification and once again in normalization with completely different
code design making it hard to verify that their behavior is materially
equivalent.
6. In cases where we must cache for performance, two different types
that are isomorphic have different cache entries resulting in cache
misses.
7. Type family reduction can handle cyclic type families, but only if
the cycle is not obscured by a different type family instance. (`t1
where t1 = union<number, add<t1, number>>` is irreducible)

I think we're getting the point!

---

Currently the implementation is missing a few features that makes
e-graphs actually useful. Those will be coming in a future PR.

1. Pattern matching,
6. Applying rewrites,
7. Rewrite until saturation, and
8. Extracting the best e-node according to some cost function.
2024-07-16 10:35:20 -07:00
birds3345
0dbe1a5022
add cmake folder to .gitignore (#1246)
In the readme file under the building section, it specifies that you
should run the command `mkdir cmake && cd cmake`; however, the folder is
not currently being ignored.
2024-05-22 13:07:15 -07:00
John Hui
3f478bb439
Add luau-compile to .gitignore (#995) 2023-08-07 16:26:16 -07:00
Arseny Kapoulkine
1b20fcd43c
Sync to upstream/release/539 (#625) 2022-08-04 15:35:33 -07:00
Arseny Kapoulkine
d3b566c258
Sync to upstream/release/538 (#616) 2022-07-28 21:24:07 -07:00
Arseny Kapoulkine
d50b079325
Sync to upstream/release/509 (#303)
- Rework transaction log used for type checking which should result in more robust type checking internals with fewer bugs
- Reduce the amount of memory consumed by type checker on large module graphs
- Type checker now errors on attempts to change the type of imported module fields
- The return type of newproxy is now any (fixes #296)
- Implement new number printing algorithm (Schubfach) which makes tostring() produce precise (round-trippable) and short decimal output up to 10x faster
- Fix lua_Debug::linedefined to point to the line with the function definition instead of the first statement (fixes #265)
- Fix minor bugs in Tab completion in Repl
- Repl now saves/restores command history in ~/.luau_history
2022-01-06 17:46:53 -08:00
Pelanyo Kamara
aec8fbfd0f
Feature: Web REPL using Emscripten (#138)
Currently doesn't include the new page into navigation since we aren't building the .js files anywhere.
2021-11-10 08:40:46 -08:00
Arseny Kapoulkine
12b2838de0 Update .gitignore to match upstream 2021-11-01 14:52:34 -07:00
Alan Jeffrey
6c709f8e65
Added News section (#12)
* Add outline News section

* First draft Feb 2021 Recap

* Fixed image links

* Removed type definition files and refinements

* Added Luau Type Checking Release

* Added Luau Type Checking Beta

* Added Luau Recap August 2020

* Added Luau Recap June 2020

* Fixed code typos

* Formatting

* Removed mention of class declarations

* Rename 2020-06-20-luar-recap-june-2020.md to 2020-06-20-luau-recap-june-2020.md

* Add luau-recap-feb2021-benchmark.png

* Add luau-recap-february-2021-benchmark.png

* Delete luau-recap-feb2021-benchmark.png

* Added some more miscellaneous improvements

* Update 2021-03-01-luau-recap-february-2021.md

Expand on perf. improvements and mention table.clear.

* Update 2021-03-01-luau-recap-february-2021.md

* Update 2021-03-01-luau-recap-february-2021.md

* Removed the navigation link to Home as it didn't fit on mobile

* Removed unneeded file

* Added Luau Recap May 2020

* Added Debugger improvements

* Added Luau Recap Feb 2020

* Added Luau Recap Nov 2019

* Added a debugger screenshot

* Added image assets

Co-authored-by: Arseny Kapoulkine <arseny.kapoulkine@gmail.com>
2021-03-02 12:45:21 -08:00