Skip to content
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

Prepare Stacklss 3.5 #112

Closed
ghost opened this issue Dec 25, 2016 · 7 comments
Closed

Prepare Stacklss 3.5 #112

ghost opened this issue Dec 25, 2016 · 7 comments

Comments

@ghost
Copy link

ghost commented Dec 25, 2016

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:

  1. https://bugs.python.org/issue21205: New generator attribute __qualname__. PyGenObject gets two new members: gi_name and gi_qualname.

    Pickling support implemented: a8f3bfa783a9

  2. https://bugs.python.org/issue19235: new RecursionError exception

  3. 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.

  4. Argument Clinic


@ghost
Copy link
Author

ghost commented Dec 26, 2016

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:

374 tests OK.
6 tests failed:
    test_doctest test_httplib test_pickle test_pickletools test_ssl
    test_urllibnet
2 tests altered the execution environment:
    test_distutils test_warnings
10 tests skipped:
    test_devpoll test_kqueue test_msilib test_ossaudiodev
    test_startfile test_tk test_ttk_guionly test_winreg test_winsound
    test_zipfile64

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

@ghost
Copy link
Author

ghost commented Dec 26, 2016

Original comment by Anselm Kruis (Bitbucket: akruis, GitHub: akruis):


Points 2 and 3 are not yet implemented in our current default-slp. I'm going to merge the changes in branch default up to commit 0d0989359bbb. This is the last ancestor of branch 3.5 on branch default.

@ghost
Copy link
Author

ghost commented Apr 9, 2017

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?

@ghost
Copy link
Author

ghost commented Apr 15, 2017

Original comment by Anselm Kruis (Bitbucket: akruis, GitHub: akruis):


Here it is: 0ac1f7fae298 could become Stackless 3.5.3.

@ctismer and @krisvale: could you please test the latest 3.5-slp version.

@ghost
Copy link
Author

ghost commented Sep 2, 2017

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.

@ghost ghost added this to the 3.5.3-slp milestone Sep 24, 2017
@akruis
Copy link

akruis commented Oct 1, 2017

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.

akruis pushed a commit that referenced this issue Oct 2, 2017
- Change the product and file names to Stackless (Python).
- Add Stackless include files
- Update the Product and Download URLs
@akruis
Copy link

akruis commented Oct 2, 2017

Installers for Windows v3.5.4 are available for download on stackless.com. I can't build macOS installers.

@akruis akruis closed this as completed Oct 2, 2017
akruis pushed a commit that referenced this issue Oct 29, 2017
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
akruis pushed a commit that referenced this issue Oct 29, 2017
…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
akruis pushed a commit that referenced this issue Nov 1, 2017
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)
akruis pushed a commit that referenced this issue Nov 1, 2017
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
akruis pushed a commit that referenced this issue Nov 1, 2017
…in ceval.c

#define PY_LOCAL_AGGRESSIVE in ceval.c. Commit c3815b2f9943 undefined it by accident.

https://bitbucket.org/stackless-dev/stackless/issues/112
akruis pushed a commit that referenced this issue Nov 1, 2017
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
akruis pushed a commit that referenced this issue Nov 1, 2017
akruis pushed a commit that referenced this issue Nov 5, 2017
- Change the product and file names to Stackless (Python).
- Add Stackless include files
- Update the Product and Download URLs
akruis pushed a commit that referenced this issue Nov 5, 2017
- Change the product and file names to Stackless (Python).
- Add Stackless include files
- Update the Product and Download URLs

(cherry picked from commit 0c1f53c)
akruis pushed a commit that referenced this issue Mar 3, 2018
mention bpo-28929 in the Documentation section of
What's New in Python 3.7.0 alpha 1
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant