I've continued the slow work of expanding the scope of the centralized object storage (#1021). Including a new object in the centralized object storage opens opportunities for making any validation code that deals with that object more strict, which helps to prevent bugs. I wrote documentation about that, in case you're interested in the details.
The gist of it is, that sometimes you expect two references to an object to be the same. You can check that using equality (do they look the same?) or identity (are they actually the same object?), the latter being much stricter and less error-prone. The bulk of the work is to update any code that triggers to fulfill those stricter requirements.
Last week, I've integrated
GlobalVertex into the centralized object storage, but most code creating
GlobalVertex instances has not been updated to meet the stricter validation requirements yet.
Fornjot is supported by @webtrax-oz, @lthiery, @ahdinosaur, @Yatekii, @martindederer, @hobofan, @thawkins, @bollian, @rozgo, @reivilibre, and my other awesome sponsors. Thank you!
If you want Fornjot to be sustainable long-term, please consider supporting me too.
Improvements to Fornjot and its documentation that are visible to end users.
None this week. Still busy improving the kernel!
Improvements to Fornjot components that are relevant to developers building on top of those. These have an indirect effect on end users, through fixed bugs and improved robustness.
- Make minor cleanups in sweep code (#1167)
- Fix various instances of duplicate objects being created (#1168, #1170, #1172, #1174)
- Expand and improve partial object API (#1169, #1171)
- Expand scope of centralized object storage (#1176, #1179, #1180)
- Clean up handling of vertices in normalized order (#1181)
Improvements that are relevant to developers working on Fornjot itself.
- Update release procedure (#1165, #1177)
- Update dependencies (#1166, #1182, #1183, #1184, #1185, #1186, #1187, #1188, #1189, #1192)
I'm continuing my systematic approach of increasing the strictness of the validation code, thereby increasing the general robustness of the kernel code. As a side effect, this should take care of #1162, which then clears the road for further progress on the union operation (#42).