ianmackenzie / ianmackenzie/opensolid
Optimize bytecode evaluation
- Dominant language
- Haskell
- Stars
- 18
- Forks
- 0
- PR merge metrics
- No merged PRs in 30d
Description
* Optimized representation for planar surface functions
* Update `Ast` module to use p0/i/j representation instead of planes?
* Rename `Ast.PlacePoint2d` to `Ast.PlanarPoint2d`, `Ast.PlaceVector2d` to `PlanarVector2d`
* Add `Arc#d` bytecode instructions
* Optimize `Ast` operations for Bezier curves
* `xComponent`, `yComponent`, `rightwardComponent`, `forwardComponent`, `upwardComponent`
* dot product and cross product
* sum, difference, product and quotient with constant
* Special cases for arithmetic on mixed variable/constant `Ast` values
* e.g. `a + (b + x)` -> `(a + b) + x`
Contributor guide
No contributing guide indexed for this repository
Research direction
Start with the Ast module and trace bytecode evaluation for planar surface functions and Bezier curves. Review the requested Arc#d instructions, component and arithmetic operations, and mixed variable/constant Ast cases. Done means the listed representations, instructions, and optimizations are implemented consistently and bytecode evaluation is verified for these cases.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- haskell
- Domain
- compilers, performance
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100