ianmackenzie / ianmackenzie/opensolid

Optimize bytecode evaluation

Open
#39 0 comments 0 reactions 0 assignees View on GitHub
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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.