Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merge SFT with Space #109

Open
qinsoon opened this issue Jun 24, 2020 · 1 comment
Open

Merge SFT with Space #109

qinsoon opened this issue Jun 24, 2020 · 1 comment
Labels
A-space Area: Space/PageResource C-refactoring Category: Refactoring F-question Call For Participation: Unanswered question (need more information) P-normal Priority: Normal.

Comments

@qinsoon
Copy link
Member

qinsoon commented Jun 24, 2020

trait SFT (Space Function Table) was created so that we can use it as trait objects, as at that time, Space<VM, PR> could not be used as trait objects. To solve this, SFT was introduced and some of functions in Space were moved to SFT.

#108 removed type parameters of Space<VM>, and makes it possible to merge what is in SFT back to Space. We should think about whether we should merge SFT back with Space.

Pros:

  • Less traits.
  • One Space trait, no confusion.

Cons:

  • As we plan to provide a more efficient mechanism to implement SFT (Per-Space "Dynamic Dispatch" #55), the merging will make it unclear what would be in space function table.
@qinsoon qinsoon added F-question Call For Participation: Unanswered question (need more information) C-refactoring Category: Refactoring A-space Area: Space/PageResource labels Jun 24, 2020
@qinsoon qinsoon added this to the v0.2 milestone Nov 4, 2020
@qinsoon qinsoon removed this from the v0.2 milestone Nov 9, 2020
qinsoon added a commit to qinsoon/mmtk-core that referenced this issue Mar 28, 2023
@qinsoon qinsoon added the P-normal Priority: Normal. label Jan 8, 2024
@wks
Copy link
Collaborator

wks commented Jan 8, 2024

A related type is SpaceDescriptor. Similar to SFT which maps object addresses to dynamically dispatched Space instances, a SpaceDescriptor maps object addresses to some selected space metadata. They actually serve similar purposes.

Related links:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-space Area: Space/PageResource C-refactoring Category: Refactoring F-question Call For Participation: Unanswered question (need more information) P-normal Priority: Normal.
Projects
None yet
Development

No branches or pull requests

2 participants