Goose  History of bs/sema/substitute.cpp of 121c78d7e5a9ebc7

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

History of file bs/sema/substitute.cpp at check-in 121c78d7e5a9ebc7

2024-09-15
20:24
Add clang format settings, reformat everything file: [119ae8a815] check-in: [0db147f117] user: achavasse branch: cir-ssa-refactor, size: 1185
2022-09-02
21:42
  • Implemented a test for variadic functions
  • Fixed a million issues and missing things preventing the above from working
  • Implemented equality operators for types
file: [dd525c54ed] check-in: [373a6ebd57] user: zlodo branch: trunk, size: 1160
2021-02-25
12:10
Implemented a new method to order function overloads. Enabled several new reference tests which are now working properly. file: [ff6566a26b] check-in: [52ea24b083] user: achavasse branch: trunk, size: 1038
2021-02-12
23:57
Added a "flavor" term to holes to be able to have specific rules for TVar holes and for forwarding holes. Refactored forwarding holes to use this, instead of being represented as compound expressions (which would probably have broken down horribly in some complex type checking scenarios) file: [e3414a590c] check-in: [176ee856a6] user: achavasse branch: trunk, size: 974
2020-06-27
22:05
Clearly separate the type checking rules and the unification rules, instead of lumping them all together in a single set of patterns which is increasingly confusing. file: [05409971eb] check-in: [b64ea47f6b] user: achavasse branch: trunk, size: 970
2020-06-20
14:32
  • Got rid of the gross system of performing unifications twice in all cases. It's only really needed when invoking template functions.
  • Since the above had the unexpected side effect of fixing the tuple Initialize() overloads not being called, fixed those (which were actually broken).
file: [3ddc25266c] check-in: [c3f897359f] user: achavasse branch: trunk, size: 969
2020-05-21
17:26
Created a new term type to represent holes in IR expressions. The old system of representing holes using a vector of two values led to ambiguousness when creating some rule patterns: a tuple whose both type vector and payload vector were holes would be indistinguishable from a tuple containing two elements. file: [6038da9c4d] check-in: [51c6751b6d] user: achavasse branch: trunk, size: 2262
2019-09-22
14:37
Project renaming. file: [f212d36059] check-in: [af650a9e95] user: achavasse branch: trunk, size: 2325
2019-08-16
23:52
Simplified ir::Vector, use plain std::vector to store the terms. immer::vector was pointless for that since we pretty much never actually take advantage of them being CoW in this case. file: [45e5c97c04] check-in: [f2ca82dfce] user: achavasse branch: trunk, size: 2327
2019-08-09
19:54
Cleanup: got rid of the half-assed location and poisoning systems in ir::Terms. file: [d039f04800] check-in: [aee388d9c0] user: achavasse branch: trunk, size: 2347
2019-08-05
02:45
  • Unification now works in two passes. The second pass gives unification rules a chance to match again after all the holes have been resolved and substituted.
  • Fixed many horrible bugs in various unification rules that managed to go by unnoticed until the above change, after which they made everything catch on fire.
  • Simplified the ct_int and ct_string unification rules to take advantage of the new unification behavior. Everything finally works as intended wrt to ct_int versus RT integers.
  • Removed unification callbacks. It was a system to provide a way to perform unification work post hole substitution, so it is now obsolete.
file: [6d6bf33752] check-in: [43e22af793] user: achavasse branch: trunk, size: 2709
2019-04-01
20:37
sema: implemented SubstituteNamed. file: [c179d0d5b3] check-in: [121c78d7e5] user: achavasse branch: trunk, size: 2815
2019-03-17
15:54
Sema: terms can now be wrapped along with a callback to be invoked by Substitute(). file: [0fbdd5edb3] check-in: [dd70f4c696] user: achavasse branch: trunk, size: 1476
2019-01-06
16:44
  • Removed the hole count from terms, as it turned out not to be useful.
  • Removed stray debugging code.
file: [68109274a4] check-in: [ab275db690] user: achavasse branch: trunk, size: 1189
2019-01-04
14:11
Added: Implement hole substitution algorithm. file: [8d37ef60f2] check-in: [849a7f99e5] user: achavasse branch: trunk, size: 1314