[CLI] Support type lowering in the generated symbol containers
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 35/100
Research direction
Start by reviewing the generated symbol-container code and generator-option precedent in issue #130; this issue does not name specific files or tests. Determine whether optionally lowering ExtendA and ExtendB into Base, while retaining their own slices, improves linking performance without undermining the allocation benefits. Done means the option's behavior is implemented and validated against the inheritance and reference grammar described here.
Written by the indexing model from the issue text.
Description
With https://github.com/TypeFox/fastbelt/pull/144, the slices from the generated symbol containers can be reused directly in the linking phase. However, in a grammar such as:
interface Base { Name string }
interface ExtendA extends Base {...}
interface ExtendB extends Base {...}
RefA: Ref=[ExtendA:ID]
RefB: Ref=[ExtendB:ID]
RefBase: Ref=[Base:ID]
The generated container allocates a slice for ExtendA and ExtendB, but will generate a merged container for Base. This makes sense, as it generally reduces heap allocations, but reduces linking performance, due to the amount of allocations required to generate and iterate trough the merged container. We should consider whether it makes sense to optionally lower the types of ExtendA and ExtendB into Base (in addition to keeping their own slices). This could be a generator option, as seen in #130.
- Dominant language
- Go
- Stars
- 33
- Forks
- 4
- PR merge metrics
- No merged PRs in 30d
Getting set up
Starts the project's dev container in your browser, under your own GitHub account.
- No Dockerfile or Docker Compose file
- No pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from TypeFox/fastbelt
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
-
Difficulty 4/5 1-2 days Newbie friendliness 48/100
-
Difficulty 3/5 1-2 days Newbie friendliness 72/100
-
Documents use the mutable editor overlay as their text, so positions can belong to a newer versionOpen
Difficulty 4/5 3-5 days Newbie friendliness 44/100
-
Difficulty 4/5 3-5 days Newbie friendliness 54/100
All issues in TypeFox/fastbelt
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 66/100
kubernetes-sigs/aws-iam-authenticator#1125 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
prime-radiant-inc/evener#6241 ·
Maintainers usually reply within 1 day
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
snowflakedb/gosnowflake#1864 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
mandiant/VM-Packages#1667 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
coder/openstorage#807 ·
Maintainers usually reply within 1 day