← Back to context

Comment by chubs

1 year ago

Very impressive. I read the readme and I’m unsure how memory management works, is it GC? And is it OOP or not? Thanks :)

Only guessing, but since the language is for scripting then maybe all garbage could be collected when the script finishes?

  • I was also curious. Looking at the code, it seems values are Boxed, but there's a special type called Shared that is an Rc-RefCell (unless Send-enabled.):

                        // Also handle case where target is a `Dynamic` shared value
    
                        // (returned by a variable resolver, for example)
    
     Couldn't find any other information about a GC, so guessing this is pure ref-counting. Speaking of potential memory leaks, there's also string interning happening. I agree this seems to be for short-lived contexts right now.

    • Not even reference counting.

      There are no references as values are always cloned (or moved).