melt-umn / silver

An attribute grammar-based programming language for composable language extensions
http://melt.cs.umn.edu/silver/
GNU Lesser General Public License v3.0
58 stars 7 forks source link

Implement flow analysis for dispatch sharing, and use it in the Silver compiler #837

Closed krame505 closed 3 months ago

krame505 commented 3 months ago

Fixes #812, fixes #810. Depends on #831.

Changes

This finishes support for dispatch sharing, and refactors the Silver compiler to use it.

Remove support for unique references and undecorates to. Uniqueness analysis is kept, but significantly condensed into a check for multiple non-mutually-exclusive sharing of the same tree.

Significant refactoring of the flow analysis, inherited completeness checking is now expressed as a rewriting process over a DecSiteTree decision tree. Introduced flow graphs for dispatch signatures. Updated and fix bugs with hidden transitive dependency checks.

Documentation

https://github.com/melt-umn/melt-website/pull/60

Also added source comments as needed.

Testing

Please briefly describe the tests you have written for the changes included in this pull request, or why it is not possible to test the changes.

Please remove all the prefilled text other than the headings before submitting your pull request.

dpulls[bot] commented 3 months ago

:tada: All dependencies have been resolved !