Skip to content

[CI] Add Regions and Cowns#93

Open
xFrednet wants to merge 2 commits intoimmutable-mainfrom
new-regions-main
Open

[CI] Add Regions and Cowns#93
xFrednet wants to merge 2 commits intoimmutable-mainfrom
new-regions-main

Conversation

@xFrednet
Copy link
Copy Markdown
Collaborator

  • sudo CI=green
  • Ownership: Extract common ownership functionality for reuse
  • Ownership: Extract object graph traversal for reuse
  • Ownership: Add regions
  • Adding region.c
  • IDK something something regions and docs
  • Docs and progress
  • This is ugly but cleanup is tomorrow
  • Nicer union-find code 🎉
  • More and more progress
  • parent -> owner rename
  • More clenaup
  • More fun!
  • Something compiles I guess
  • Why is there no formatter!!!
  • Progres progress progresss
  • Ownership: Add to region
  • Ownership: Plan in TODOs
  • Ownership: expand invariant for regions
  • Fix bug from bad interaction with incremental GC.
  • Small Fixes
  • Ownership: New regions module
  • Ownership: The first regions and exceptions...
  • Ownership: This is a .. journey
  • Ownership: Bugfixes!!
  • Ownership: _PyRegion_AddRefs
  • Ownership: Start writing Tests
  • More tests
  • Ownership more tests
  • Progress and interesting bugs
  • Skybreaker!!!!
  • Small bug fixes, progress and work on the wekend
  • Cleanup and exception'al problems
  • Actual text output o.O
  • I believe staging region references works now?
  • How is the bug still there
  • Adding more write barriers
  • Try close backend (There is no way this works)
  • Try close testing and debugging one thing at a time
  • Regions: From asserts to seg faults
  • Regions: Cleaning works
  • Regions: Debugging and dealloc/clear routines
  • Region: New BridgeObject to access fields in internal regions,c
  • Region: Move name into bridge object data
  • Regions: Clear region on dealloc to allow region dealloc
  • Regions: Planning for next week
  • Region: extract objects from GC and track in Region
  • Region: Notes on cowns
  • Minor fixes to make it compile with GCC
  • More GCC fixes
  • Cowns: Drafting up cown callbacks
  • Cown: Store cown in region
  • TODOs
  • Cowns: Add Cown Object
  • Something compiles, but that doesn't mean much in C
  • More is somehow compiling
  • Basic cowns seems to be working
  • Tests say more than a 100 words
  • Minor fixes
  • Disable GC asserts broken by regions
  • Test cown.value field
  • Cown REPR and cleanup
  • Release the cowns!!!!
  • Cowns: Acquire done :D
  • Cowns: Use separate interpreter and thread ID and more methods
  • Cowns: More tests :D
  • Cowns: Release unused state field
  • Cown: Complete broken docs
  • Region: More Region object into core
  • Region: Remove _ prefix from write barriers
  • More Write barriers... Literally
  • Clean up
  • Improve WB
  • Stage Refs
  • Slow steps, still LRC bugs
  • FML, tests aren't even starting
  • Tests are working-ish again
  • Slow and steady wins the race
  • Less rogue LRCs
  • Another bug hunted and KILLED
  • OSC one off, maybe due to open following pending merge tag?
  • Better parent lookup
  • Fix Union-Merge traversal with pending and other stuff
  • More _PyRegion_Get to pycore header
  • Document missing dict tests and add 4 new ones
  • Migrate something to use regions
  • Dict views mostly working
  • Broken code and and fixed crashes
  • Normal dictionary construction works now :D
  • List and tuple write barriers that break everything
  • More tests are passing, let's see
  • Cleaup
  • Regions: Track bridges of subregions in parent GC list
  • Regions: Unfailable RemoveRef, more barriers in dicts and new TakeRefs
    • Region: More write barrier for dicts
    • Regions WB in dict.popitem()
    • Regions: dict write barrier in setdefault
    • The tests finally pass!
    • Regions: Add LRC test and fix managed dict stuff
    • Region: Improve cleaning call to clean dirty subregions
    • Region: Add PyRegion_TakeRefs
    • Region: RemoveRef can no longer fail
    • Region: Store reason for dirty
    • Regions: clean() now returns the number of cleaned regions
  • Cowns: Add option to acquire a cown for the GC
  • Cown: Add new tests for releasing open regions
  • Regions: Correct off-by-one LRC and Cown release code
  • Regions: Prevent the GC from setting flags in non-local objects
  • Regions: Add _PyDict_Reachable to also visit unicode keys
  • Region: Fix write barrier for instance attribute
  • Regions: Make Region's tp_clear fail
  • Regions: Fix warning with object cast
  • Region: Fix freelist usage and keep region for dealloc
  • Regions: Fix Of-by-one LRC error
  • Regions: Fix stack ref LRC bug
  • Regions: Fix another off-by-one in stackref
  • Cowns: Allow switching owner to IP and back to GC
  • Regions: Add PyRegion_AddRefsArray() write barrier
  • Cowns: Fix switching to GC
  • Cowns: Refactor release and switching
  • Cowns: Set value to None if cannot switch to GC
  • Regions: Don't randomly rip out objects out of GC lists
  • Regions: Correct _PyRegion_AddRefsArray() write barrier
  • Regions: Add PyRegion_SameRegion function
  • Remove _PyRegion_SignalDealloc
  • Clear region for recycled being objects
  • Add basic movability

@xFrednet xFrednet force-pushed the new-regions-main branch 21 times, most recently from e728b6f to 4ba9703 Compare April 1, 2026 18:38
- sudo CI=green
- Ownership: Extract common ownership functionality for reuse
- Ownership: Extract object graph traversal for reuse
- Ownership: Add regions
- Adding region.c
- IDK something something regions and docs
- Docs and progress
- This is ugly but cleanup is tomorrow
- Nicer union-find code 🎉
- More and more progress
- parent -> owner rename
- More clenaup
- More fun!
- Something compiles I guess
- Why is there no formatter!!!
- Progres progress progresss
- Ownership: Add to region
- Ownership: Plan in TODOs
- Ownership: expand invariant for regions
- Fix bug from bad interaction with incremental GC.
- Small Fixes
- Ownership: New regions module
- Ownership: The first regions and exceptions...
- Ownership: This is a .. journey
- Ownership: Bugfixes!!
- Ownership: _PyRegion_AddRefs
- Ownership: Start writing Tests
- More tests
- Ownership more tests
- Progress and interesting bugs
- Skybreaker!!!!
- Small bug fixes, progress and work on the wekend
- Cleanup and exception'al problems
- Actual text output o.O
- I believe staging region references works now?
- How is the bug still there
- Adding more write barriers
- Try close backend (There is no way this works)
- Try close testing and debugging one thing at a time
- Regions: From asserts to seg faults
- Regions: Cleaning works
- Regions: Debugging and dealloc/clear routines
- Region: New BridgeObject to access fields in internal regions,c
- Region: Move name into bridge object data
- Regions: Clear region on dealloc to allow region dealloc
- Regions: Planning for next week
- Region: extract objects from GC and track in Region
- Region: Notes on cowns
- Minor fixes to make it compile with GCC
- More GCC fixes
- Cowns: Drafting up cown callbacks
- Cown: Store cown in region
- TODOs
- Cowns: Add Cown Object
- Something compiles, but that doesn't mean much in C
- More is somehow compiling
- Basic cowns seems to be working
- Tests say more than a 100 words
- Minor fixes
- Disable GC asserts broken by regions
- Test cown.value field
- Cown REPR and cleanup
- Release the cowns!!!!
- Cowns: Acquire done :D
- Cowns: Use separate interpreter and thread ID and more methods
- Cowns: More tests :D
- Cowns: Release unused state field
- Cown: Complete broken docs
- Region: More Region object into core
- Region: Remove `_` prefix from write barriers
- More Write barriers... Literally
- Clean up
- Improve WB
- Stage Refs
- Slow steps, still LRC bugs
- FML, tests aren't even starting
- Tests are working-ish again
- Slow and steady wins the race
- Less rogue LRCs
- Another bug hunted and KILLED
- OSC one off, maybe due to open following pending merge tag?
- Better parent lookup
- Fix Union-Merge traversal with pending and other stuff
- More _PyRegion_Get to pycore header
- Document missing dict tests and add 4 new ones
- Migrate something to use regions
- Dict views mostly working
- Broken code and and fixed crashes
- Normal dictionary construction works now :D
- List and tuple write barriers that break everything
- More tests are passing, let's see
- Cleaup
- Regions: Track bridges of subregions in parent GC list
- Regions: Unfailable `RemoveRef`, more barriers in dicts and new `TakeRefs`
    - Region: More write barrier for dicts
    - Regions WB in dict.popitem()
    - Regions: dict write barrier in setdefault
    - The tests finally pass!
    - Regions: Add LRC test and fix managed dict stuff
    - Region: Improve cleaning call to clean dirty subregions
    - Region: Add PyRegion_TakeRefs
    - Region: RemoveRef can no longer fail
    - Region: Store reason for dirty
    - Regions: `clean()` now returns the number of cleaned regions
- Cowns: Add option to acquire a cown for the GC
- Cown: Add new tests for releasing open regions
- Regions: Correct off-by-one LRC and Cown release code
- Regions: Prevent the GC from setting flags in non-local objects
- Regions: Add `_PyDict_Reachable` to also visit unicode keys
- Region: Fix write barrier for instance attribute
- Regions: Make Region's `tp_clear` fail
- Regions: Fix warning with object cast
- Region: Fix freelist usage and keep region for dealloc
- Regions: Fix Of-by-one LRC error
- Regions: Fix stack ref LRC bug
- Regions: Fix another off-by-one in stackref
- Cowns: Allow switching owner to IP and back to GC
- Regions: Add `PyRegion_AddRefsArray()` write barrier
- Cowns: Fix switching to GC
- Cowns: Refactor release and switching
- Cowns: Set value to None if cannot switch to GC
- Regions: Don't randomly rip out objects out of GC lists
- Regions: Correct `_PyRegion_AddRefsArray()` write barrier
- Regions: Add `PyRegion_SameRegion` function
- Remove _PyRegion_SignalDealloc
- Clear region for recycled being objects
- Add basic movability
- sudo CI=green
- Disable (for now) unsupported platforms
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