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

Extend garbage collection (GC) to cover symbols #68

Open
gmbecker opened this issue Aug 27, 2023 · 2 comments
Open

Extend garbage collection (GC) to cover symbols #68

gmbecker opened this issue Aug 27, 2023 · 2 comments
Labels
C Involves C code Interest From R-core Interest/support has been shown from at least one R-core member Low-level Issues related to low-level code

Comments

@gmbecker
Copy link

Endorsed by Luke

Currently symbols are never garbage collected. Some usage patterns
create many symbols that are no longer needed after a computation,
but will never be reclaimed. It should be possible to modify the GC
to remove symbols no longer referenced from the symbol table.

It might also be useful to allow for symbols not in the symbol
table (uninterned symbols, or gensyms).
@gmbecker gmbecker added Low-level Issues related to low-level code C Involves C code Interest From R-core Interest/support has been shown from at least one R-core member labels Aug 27, 2023
@aitap
Copy link
Contributor

aitap commented Aug 28, 2023 via email

@ltierney
Copy link

Yes there will need to be a separate interface for creating transient symbols, and an efficient way to distinguish whether a symbol is permanent or transient (probably a bit in sxpinfo.gp).

The main places where transient symbols can be created are in the parser for new symbols in RR code, the as.name implementation, and for tags in attributes. There are probably other places as well, but they don't need to be identified all at once.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C Involves C code Interest From R-core Interest/support has been shown from at least one R-core member Low-level Issues related to low-level code
Projects
None yet
Development

No branches or pull requests

3 participants