Skip to content
This repository was archived by the owner on Feb 13, 2025. It is now read-only.

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 subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

1 participant