-
-
Notifications
You must be signed in to change notification settings - Fork 484
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
feat(semantic): add Symbol
#4372
Conversation
Your org has enabled the Graphite merge queue for merging into mainAdd the label “merge” to the PR and Graphite will automatically add it to the merge queue when it’s ready to merge. Or use the label “hotfix” to add to the merge queue as a hot fix. You must have a Graphite account and log in to Graphite in order to use the merge queue. Sign up using this link. |
CodSpeed Performance ReportMerging #4372 will not alter performanceComparing Summary
|
This indirection feels redundant to me - you'll need to get familiarized yourself of data-orientated-design and our SoA strucutre. |
Personally, I do like the thrust of this PR - I think the storage medium (SoA) can be thought of an implementation detail, and it's appropriate to provide an abstraction with a more "normal" API. However:
FYI, I've also stopped doing perf work on |
Not directly related to this PR, But maybe we should put some effort toward researching any existing solution like https://github.com/ziglang/zig/blob/master/lib/std/multi_array_list.zig (have I mentioned this before or am I having a Dejavu moment?) |
I agree that the various SoA structures should be an implementation detail. I've found that interacting with them can be quite verbose (particularly in lint rules), and this seems like a cleaner way of doing so.
This could be a perf regression, but if it was, it would only affect consumers using an owned Regarding updates to the symbol table,
In my opinion, having a wrapper gives us the flexibility to refactor |
I'm sorry @DonIsaac but I don't think we should move forwards with this right now. Boshen has voiced opposition (and I don't want to pull him away from his holiday to argue the case with him). And I've said that, while I do like the thrust of what you're doing here, I'm also opposed to making changes to This may be a boringly practical argument, but I really want to get on with doing the research for this RFC, and I (like everyone) have limited bandwidth. So regardless of whether proposed changes are good or not, it makes it harder to hold the whole thing in your head if its an ever-evolving moving target, so it would be a big help if we could take a pause. I've added a note on oxc-project/backlog#11 to come back to this later on, so your work won't be wasted. So... TLDR... I'm not saying "no", but I am saying "not now please". I hope you can understand my reasoning. |
Understandable, let's move forward on Semantic first. I'll close this PR. |
Thanks for understanding Don. It's never easy saying "no", and rarely feels great receiving that answer either. So I appreciate you accepting my rationale, even though it's no doubt not what you wanted to hear. |
What This PR Does
Adds
Symbol
, which is a thin abstraction overSemantic
for interacting with a specific symbol. It basically just wraps aSymbolId
, making it a little nicer to interact with the symbol table.