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

feat(rivetc+rivet): implement boxed pointers (^T) #60

Closed
wants to merge 124 commits into from

Conversation

StunxFS
Copy link
Member

@StunxFS StunxFS commented Jan 1, 2024

A new type of pointer is introduced to the compiler: ^T, a smart pointer that has automatic reference counting and also points to a value in the heap.

This pointer has the same capabilities as a normal pointer. Its value can be dereferenced using the syntax: boxed_ptr.^, and in addition, a pointer can be created using the following syntax: ^value.

Boxed pointers have their equivalent to rawptr: boxedptr, which can receive any boxed pointer, in addition to this, it also has automatic reference counting, so there is no need to use mem.dealloc.

New functions are added to the core.mem module, which operate with boxedptrs.

Rivet uses this pointer for dynamic strings and dynamic arrays.

@StunxFS StunxFS closed this Aug 25, 2024
@StunxFS StunxFS reopened this Aug 25, 2024
@StunxFS StunxFS closed this Sep 11, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant