Strings are stored in a way similar to BASIC V3.5 and later - every one of them is followed by a back-pointer, allowing for much faster garbage collection. The difference is, that we don't have a special back-pointer value telling this is a temporary string, they are recognized by checking if the back-pointer points to zero page.
Arrays still need some work (more testing needed, we currently miss creating arrays with default size of 10) - but this pull request is already quite large, I don't want to delay it even further.
As always, all similarities >3 explained in the last commit. I'll write a post for the blog - just not today.
This pull request is sponsored by strings:
...and a bunch of improvements here and there.
Strings are stored in a way similar to BASIC V3.5 and later - every one of them is followed by a back-pointer, allowing for much faster garbage collection. The difference is, that we don't have a special back-pointer value telling this is a temporary string, they are recognized by checking if the back-pointer points to zero page.
Arrays still need some work (more testing needed, we currently miss creating arrays with default size of 10) - but this pull request is already quite large, I don't want to delay it even further.
As always, all similarities >3 explained in the last commit. I'll write a post for the blog - just not today.