Join GitHub today
GitHub is home to over 50 million developers working together to host and review code, manage projects, and build software together.
Sign upPrepare Stacklss 3.5 #112
Prepare Stacklss 3.5 #112
Comments
|
Original comment by Anselm Kruis (Bitbucket: akruis, GitHub: akruis): Now that #113 is resolved, the Python test suite runs without crashes. A few tests fail:
Of theses the failures in test_httplib, test_ssl and test_urllibnet were likely caused by my network setup. test_doctest will be fixed by c9f1630cf2b1 (http://bugs.python.org/issue9951). test_pickle test_pickletools are Stackless related. They test, that CPython can't pickle a local function. Stackless however pickles such functions by value. I disabled (skip) the test. Changeset c9371dc8e69a |
|
Original comment by Anselm Kruis (Bitbucket: akruis, GitHub: akruis): I branched 3.5-slp and I'm approaching v3.5.0. Currently all tests seem to pass. I had to patch (commit bda8a9d487da) the C-Python test runner (http://bugs.python.org/issue30028) because the rule "Stackless kills tasklets with C-state upon shutdown" seems to affect multiprocessing is a subtle way. Obviously forked child processes now run their cleanup code. Bug or feature? |
|
Original comment by Anselm Kruis (Bitbucket: akruis, GitHub: akruis): I also tried to enable recursion free execution of coroutines and "yield from". Unfortunately it turned out to be very very complicated and I didn't succeed within a reasonable amount of time. Because this feature is not required for existing applications, I declare Stackless 3.5 feature complete. |
|
A very last step: adapt the msi installer. Since Python 3.5 a new Wix based installer is used. Fortunately it is not too hard to adapt the installer. |
- Change the product and file names to Stackless (Python). - Add Stackless include files - Update the Product and Download URLs
|
Installers for Windows v3.5.4 are available for download on stackless.com. I can't build macOS installers. |
This commit merges the fix from C-Python pull request python#1066 (git commit 22e032a) for bpo-30028. Without this change $ ./python -m test.regrtest test_multiprocessing_fork fails. ($ ./python -m test.test_multiprocessing_fork is OK.) https://bitbucket.org/stackless-dev/stackless/issues/112
…s and test_xml_etree Disable the recently added test methods test_copy() and test_pickle() in test_dictviews, test_generators and test_xml_etree. Theses test assure that objects can't be copied or pickled, but Stackless can copy/pickle them. https://bitbucket.org/stackless-dev/stackless/issues/112
This commit merges the fix from C-Python pull request python#1066 (git commit 22e032a) for bpo-30028. Without this change $ ./python -m test.regrtest test_multiprocessing_fork fails. ($ ./python -m test.test_multiprocessing_fork is OK.) https://bitbucket.org/stackless-dev/stackless/issues/112 (grafted from bda8a9d487da7cfbe4357d5c4c7635e0de19c6af)
Fix the recently added test test_pdb.test_pdb_issue_20766. This test depends on undefined behaviour of C-Python (invalid value of frame.f_lineno if frame.f_trace is None). Stackless-Python behaves differently, if soft-switching is enabled. This change disables soft-switching for this test. https://bitbucket.org/stackless-dev/stackless/issues/112
…in ceval.c #define PY_LOCAL_AGGRESSIVE in ceval.c. Commit c3815b2f9943 undefined it by accident. https://bitbucket.org/stackless-dev/stackless/issues/112
Coroutines are a new feature of Python 3.5. Because their implementation is based on generators, we can pickle and unpickle them easily. https://bitbucket.org/stackless-dev/stackless/issues/112
Skip CPython test cases for coroutine pickling / copying. https://bitbucket.org/stackless-dev/stackless/issues/112
- Change the product and file names to Stackless (Python). - Add Stackless include files - Update the Product and Download URLs
- Change the product and file names to Stackless (Python). - Add Stackless include files - Update the Product and Download URLs (cherry picked from commit 0c1f53c)
mention bpo-28929 in the Documentation section of What's New in Python 3.7.0 alpha 1
Originally reported by: Anselm Kruis (Bitbucket: akruis, GitHub: akruis)
Python 3.5 adds a few new features, which affect Stackless. Here are the results of a quick and dirty review of What’s New In Python 3.5:
https://bugs.python.org/issue21205: New generator attribute __qualname__. PyGenObject gets two new members: gi_name and gi_qualname.
Pickling support implemented: a8f3bfa783a9
https://bugs.python.org/issue19235: new RecursionError exception
https://bugs.python.org/issue24400: PEP 492 - Coroutines with async and await syntax
As part of the PEP 492 implementation, the tp_reserved slot of PyTypeObject was replaced with a tp_as_async slot. Refer to Coroutine Objects for new types, structures and functions.
The coroutine type is just a variant of the generator type. Therefore it is possible to reuse the pickling code for generators to enable pickling of coroutines. Implemented with commit e2bf67837ac2.
Argument Clinic