-
Notifications
You must be signed in to change notification settings - Fork 29
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: add PEP 489 support #209
base: master
Are you sure you want to change the base?
Commits on Jun 3, 2024
-
Configuration menu - View commit details
-
Copy full SHA for da5cd5e - Browse repository at this point
Copy the full SHA da5cd5eView commit details -
refactor: remove weird 'object_' static
It is initialized with what turns out to be '&PyBaseObject_Type', which we can just use as is.
Configuration menu - View commit details
-
Copy full SHA for d9d8a34 - Browse repository at this point
Copy the full SHA d9d8a34View commit details -
Configuration menu - View commit details
-
Copy full SHA for 3b45b38 - Browse repository at this point
Copy the full SHA 3b45b38View commit details -
Configuration menu - View commit details
-
Copy full SHA for d451191 - Browse repository at this point
Copy the full SHA d451191View commit details -
Configuration menu - View commit details
-
Copy full SHA for c0af71d - Browse repository at this point
Copy the full SHA c0af71dView commit details -
Configuration menu - View commit details
-
Copy full SHA for 328767b - Browse repository at this point
Copy the full SHA 328767bView commit details -
refactor: add helper method for looking up the CAPI struct
Note that we aren't storing it on the module state record yet, as that triggers segfaults.
Configuration menu - View commit details
-
Copy full SHA for 73e60bd - Browse repository at this point
Copy the full SHA 73e60bdView commit details -
refactor: move the global static CAPI pointer to module state
Requires overriding all the macros from 'cPersistence.h', most of which (irony, anyone?) exist only for our benefit.
Configuration menu - View commit details
-
Copy full SHA for 076738b - Browse repository at this point
Copy the full SHA 076738bView commit details -
Configuration menu - View commit details
-
Copy full SHA for 175627d - Browse repository at this point
Copy the full SHA 175627dView commit details -
Configuration menu - View commit details
-
Copy full SHA for 5bcbcdf - Browse repository at this point
Copy the full SHA 5bcbcdfView commit details -
Configuration menu - View commit details
-
Copy full SHA for 3206eef - Browse repository at this point
Copy the full SHA 3206eefView commit details -
Configuration menu - View commit details
-
Copy full SHA for 7cf369d - Browse repository at this point
Copy the full SHA 7cf369dView commit details -
Configuration menu - View commit details
-
Copy full SHA for 9e9dc06 - Browse repository at this point
Copy the full SHA 9e9dc06View commit details -
Configuration menu - View commit details
-
Copy full SHA for a461d85 - Browse repository at this point
Copy the full SHA a461d85View commit details -
Configuration menu - View commit details
-
Copy full SHA for 16f9d2c - Browse repository at this point
Copy the full SHA 16f9d2cView commit details -
Configuration menu - View commit details
-
Copy full SHA for 67770d3 - Browse repository at this point
Copy the full SHA 67770d3View commit details -
Configuration menu - View commit details
-
Copy full SHA for cd83510 - Browse repository at this point
Copy the full SHA cd83510View commit details -
Configuration menu - View commit details
-
Copy full SHA for 53dc058 - Browse repository at this point
Copy the full SHA 53dc058View commit details -
Configuration menu - View commit details
-
Copy full SHA for b6d3692 - Browse repository at this point
Copy the full SHA b6d3692View commit details -
Configuration menu - View commit details
-
Copy full SHA for 07128b3 - Browse repository at this point
Copy the full SHA 07128b3View commit details -
refactor: condition static / multi-phase init on Python version
Still forced static, for now.
Configuration menu - View commit details
-
Copy full SHA for f08c58b - Browse repository at this point
Copy the full SHA f08c58bView commit details -
Configuration menu - View commit details
-
Copy full SHA for 7142eb3 - Browse repository at this point
Copy the full SHA 7142eb3View commit details -
Configuration menu - View commit details
-
Copy full SHA for bb37267 - Browse repository at this point
Copy the full SHA bb37267View commit details -
Configuration menu - View commit details
-
Copy full SHA for 31d55f2 - Browse repository at this point
Copy the full SHA 31d55f2View commit details -
refactor: normalize static type definitions
- Use consistent naming, w/ '_type_def' suffix (for easy comparison with forthcoming '_type_spec' for heap-allocated types). - Use named members, removing clutter. - Move protocol specs (number, sequence, mepping) next to type definitions, to ease constructino of equivalent '_type_slots' for heap-allocated types. - Add TODOs to locations outside module initialization which use the addresses of type defs: they need to look them up on the module state.
Configuration menu - View commit details
-
Copy full SHA for 2c55b0f - Browse repository at this point
Copy the full SHA 2c55b0fView commit details -
Configuration menu - View commit details
-
Copy full SHA for e8ec9c6 - Browse repository at this point
Copy the full SHA e8ec9c6View commit details -
Configuration menu - View commit details
-
Copy full SHA for 27b77ae - Browse repository at this point
Copy the full SHA 27b77aeView commit details -
refactor: use module state accessors for type objects
Verses addresses of the static type defs.
Configuration menu - View commit details
-
Copy full SHA for 043fa95 - Browse repository at this point
Copy the full SHA 043fa95View commit details
Commits on Jun 4, 2024
-
fix: init non-persistent types properly
Avoid segfault at application exit.
Configuration menu - View commit details
-
Copy full SHA for b1e6f1b - Browse repository at this point
Copy the full SHA b1e6f1bView commit details -
Configuration menu - View commit details
-
Copy full SHA for 2502190 - Browse repository at this point
Copy the full SHA 2502190View commit details -
Configuration menu - View commit details
-
Copy full SHA for e2bebf0 - Browse repository at this point
Copy the full SHA e2bebf0View commit details -
tests: remove 'test_suite' decoy
zope.testrunner doesn't need it, and it causes a ginormous warning balloon under pytest
Configuration menu - View commit details
-
Copy full SHA for 4dfbf09 - Browse repository at this point
Copy the full SHA 4dfbf09View commit details -
Configuration menu - View commit details
-
Copy full SHA for b5f5bbf - Browse repository at this point
Copy the full SHA b5f5bbfView commit details -
Configuration menu - View commit details
-
Copy full SHA for eb57962 - Browse repository at this point
Copy the full SHA eb57962View commit details -
refactor: make 'newBTreeItems' function as a module 'method'
Callers must pass it the 'module', in order that it can find its type from module state.
Configuration menu - View commit details
-
Copy full SHA for babc653 - Browse repository at this point
Copy the full SHA babc653View commit details -
refactor: rename 'BTreeIter_new' -> 'newBTreeIter'
And make it a 'module method' like 'newBTreeItems'.
Configuration menu - View commit details
-
Copy full SHA for c9527d1 - Browse repository at this point
Copy the full SHA c9527d1View commit details -
Configuration menu - View commit details
-
Copy full SHA for f28a420 - Browse repository at this point
Copy the full SHA f28a420View commit details -
refactor: further prep static type defs for addition of heap types
- Split out __name__ and __doc__ to static constants. - Disentangle 'BTreeType_type_def' and its one method from 'BTree_type_def' - Wrap the static structures with '#if USE_STATIC_TYPES', leaving an empty '#else..#endif' block beneath, where the heap allocated definitions will go.
Configuration menu - View commit details
-
Copy full SHA for c090165 - Browse repository at this point
Copy the full SHA c090165View commit details -
feat: add equivalent heap-alloc type specs
Juggle tables between static and heap-alloc sections to ease verification by the Mark 1 eyeball.
Configuration menu - View commit details
-
Copy full SHA for 3d7d69a - Browse repository at this point
Copy the full SHA 3d7d69aView commit details -
Configuration menu - View commit details
-
Copy full SHA for 880c573 - Browse repository at this point
Copy the full SHA 880c573View commit details -
Configuration menu - View commit details
-
Copy full SHA for 933742c - Browse repository at this point
Copy the full SHA 933742cView commit details -
Configuration menu - View commit details
-
Copy full SHA for 39321eb - Browse repository at this point
Copy the full SHA 39321ebView commit details -
Configuration menu - View commit details
-
Copy full SHA for dea5ff0 - Browse repository at this point
Copy the full SHA dea5ff0View commit details -
fix: pass ob w/ fully-initialized type
The 'SetIteration' type is used only privately, and doesn't go through the whole type initialization dance.
Configuration menu - View commit details
-
Copy full SHA for 87da2c1 - Browse repository at this point
Copy the full SHA 87da2c1View commit details -
fix: set 'immutable' flag on extension types
Note that we may want to back this out for BTrees, and copy the logic on 'BTreeType_setattro' to control which attributes are settable, rather than using the 'BTreeType' metaclass in combination with heap types, which limits us to Python >= 3.12.
Configuration menu - View commit details
-
Copy full SHA for 737956f - Browse repository at this point
Copy the full SHA 737956fView commit details -
Configuration menu - View commit details
-
Copy full SHA for 3369741 - Browse repository at this point
Copy the full SHA 3369741View commit details -
refactor: backpedal 'master' version
Apply automatic formatting, via https://formatter.org/, then re-apply changes to use module state. Safeguarding against stray change I might've introduced when reformatting those modules by hand.
Configuration menu - View commit details
-
Copy full SHA for 868465d - Browse repository at this point
Copy the full SHA 868465dView commit details -
Configuration menu - View commit details
-
Copy full SHA for ae23b39 - Browse repository at this point
Copy the full SHA ae23b39View commit details -
Configuration menu - View commit details
-
Copy full SHA for 4f4239e - Browse repository at this point
Copy the full SHA 4f4239eView commit details -
feat: PEP489 for Python >= 3.12
- Multi-phase module initialization. - Heap-allocated types. The GC dance for buckets is still horked.
Configuration menu - View commit details
-
Copy full SHA for 10fcd21 - Browse repository at this point
Copy the full SHA 10fcd21View commit details
Commits on Jun 5, 2024
-
refactor: call type's 'tp_alloc' directly
Avoids 'PyObject_New' FBO heap-allocated types, but works just as well for the statid types.
Configuration menu - View commit details
-
Copy full SHA for 8b89e70 - Browse repository at this point
Copy the full SHA 8b89e70View commit details -
refactor: pass type ptr to '_bucket__p_resolveConflict'
And use its 'tp_alloc' slot, rather than calling it as an object.
Configuration menu - View commit details
-
Copy full SHA for 6de0312 - Browse repository at this point
Copy the full SHA 6de0312View commit details -
refactor: replace moar call-type-as-factory w/ 'tp->tp_alloc'
Both faster and easier to reason about. One exception is the call to create a new bucket for a tree, which has to live with the promise made to respect the '_bucket_type' attribute on derived classes.
Configuration menu - View commit details
-
Copy full SHA for 768e512 - Browse repository at this point
Copy the full SHA 768e512View commit details -
Configuration menu - View commit details
-
Copy full SHA for 411b3af - Browse repository at this point
Copy the full SHA 411b3afView commit details -
Configuration menu - View commit details
-
Copy full SHA for 61871ef - Browse repository at this point
Copy the full SHA 61871efView commit details -
Configuration menu - View commit details
-
Copy full SHA for 2a80897 - Browse repository at this point
Copy the full SHA 2a80897View commit details -
refactor: moar GC / dealloc cleanups
Heap-allocated BTrees et. all still segfault.
Configuration menu - View commit details
-
Copy full SHA for 902b32e - Browse repository at this point
Copy the full SHA 902b32eView commit details -
fix: set explicit 'tp_alloc'/'tp_new' slots
Use static inlined versions, to placate compilers which don't allow 'foreign' function pointers in static initializers.
Configuration menu - View commit details
-
Copy full SHA for 48f532b - Browse repository at this point
Copy the full SHA 48f532bView commit details -
Configuration menu - View commit details
-
Copy full SHA for f6f1357 - Browse repository at this point
Copy the full SHA f6f1357View commit details -
Configuration menu - View commit details
-
Copy full SHA for 28249ce - Browse repository at this point
Copy the full SHA 28249ceView commit details -
Configuration menu - View commit details
-
Copy full SHA for 2cfb0ea - Browse repository at this point
Copy the full SHA 2cfb0eaView commit details -
fix: make 'initSetIteration'/'set_operation' quasi-methods
Their arguments cannot be guaranteed to be instances of our types, which means we cannot use them to dead-reckon to the module. All callers have, or can easily derive, the module anyway.
Configuration menu - View commit details
-
Copy full SHA for d68f547 - Browse repository at this point
Copy the full SHA d68f547View commit details -
Configuration menu - View commit details
-
Copy full SHA for 84a35d9 - Browse repository at this point
Copy the full SHA 84a35d9View commit details -
Configuration menu - View commit details
-
Copy full SHA for 7cbcc77 - Browse repository at this point
Copy the full SHA 7cbcc77View commit details -
Configuration menu - View commit details
-
Copy full SHA for 7c77caf - Browse repository at this point
Copy the full SHA 7c77cafView commit details -
refactor: regularize '_dealloc'/'_traverse'
Ensure that we play nicely with 'Persistent', whether it is heap-allocated or no.
Configuration menu - View commit details
-
Copy full SHA for 6196785 - Browse repository at this point
Copy the full SHA 6196785View commit details -
Configuration menu - View commit details
-
Copy full SHA for 0ba1854 - Browse repository at this point
Copy the full SHA 0ba1854View commit details -
Configuration menu - View commit details
-
Copy full SHA for a65ad02 - Browse repository at this point
Copy the full SHA a65ad02View commit details -
refactor: make 'bucket_merge'/'merge_error' quasi-methods
Rather than dead-reckoning from types of args, make callers pass in the module (they probably have it already at this point).
Configuration menu - View commit details
-
Copy full SHA for 3038691 - Browse repository at this point
Copy the full SHA 3038691View commit details -
Configuration menu - View commit details
-
Copy full SHA for 65b57a3 - Browse repository at this point
Copy the full SHA 65b57a3View commit details -
refactor: use '_from_module' variant for all '_get_*_type' lookups
In prepration for dropping the others and renaming the '_from_module' ones
Configuration menu - View commit details
-
Copy full SHA for 02d0964 - Browse repository at this point
Copy the full SHA 02d0964View commit details -
Configuration menu - View commit details
-
Copy full SHA for 4fbe255 - Browse repository at this point
Copy the full SHA 4fbe255View commit details -
Configuration menu - View commit details
-
Copy full SHA for 0e8b5f3 - Browse repository at this point
Copy the full SHA 0e8b5f3View commit details -
refactor: add '_get_per_capi' lookup
Takes either a module or a BTree-ish object, and returns the PerCAPI*. Will replace both '_get_capi_struct' and '_get_capi_struct_from_module'.
Configuration menu - View commit details
-
Copy full SHA for 27f10b7 - Browse repository at this point
Copy the full SHA 27f10b7View commit details -
Configuration menu - View commit details
-
Copy full SHA for 65138bb - Browse repository at this point
Copy the full SHA 65138bbView commit details -
Configuration menu - View commit details
-
Copy full SHA for 6ba3f38 - Browse repository at this point
Copy the full SHA 6ba3f38View commit details -
Configuration menu - View commit details
-
Copy full SHA for 9396f92 - Browse repository at this point
Copy the full SHA 9396f92View commit details -
Configuration menu - View commit details
-
Copy full SHA for ba7c000 - Browse repository at this point
Copy the full SHA ba7c000View commit details