Skip to content

Backport CircuitPython GC changes in to uPy #3586

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

Open
nevercast opened this issue Jan 28, 2018 · 2 comments
Open

Backport CircuitPython GC changes in to uPy #3586

nevercast opened this issue Jan 28, 2018 · 2 comments
Labels
enhancement Feature requests, new feature implementations

Comments

@nevercast
Copy link
Contributor

Hello,

This issue is for the discussion of bringing CircuitPython's GC changes, commit, example video in to MicroPython.

@tannewt

This GC change shows a good improvement over fragmentation by separating long-lived and short-lived objects to opposite ends of the heap. Fragmentation is a long-standing issue with MicroPython and I'm hoping that bringing Scott's changes in to uPy will alleviate some of the memory stress. There has already been several discussions about changes to garbage collection and memory allocation, those I found immediately are: #2057 #1168 #1161. Mentions for members involved: @dpgeorge @pfalcon @danicampora

We should find an approach forward that does not block any ongoing progress towards GC/MM improvements. I'm hoping that the members mentioned can help clarify what is currently in progress, and what is open for contribution.

@tannewt
Copy link

tannewt commented Jan 29, 2018

@aykevl Also has a related PR open #3580.

I'm happy to help merge. The PR should be well isolated already.

@adritium
Copy link

adritium commented May 31, 2018

Allocating on lifetime is hard: how is a C-module supposed to guess whether the object is going to be long- or short-lived? Maybe with .py hints #3774 but that'll get messy and unmaintainable.

Why not Split up heap into logical areas based on allocated size.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement Feature requests, new feature implementations
Projects
None yet
Development

No branches or pull requests

4 participants