<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://debianws.lexgopc.com/wiki143/index.php?action=history&amp;feed=atom&amp;title=Stackless_Python</id>
	<title>Stackless Python - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://debianws.lexgopc.com/wiki143/index.php?action=history&amp;feed=atom&amp;title=Stackless_Python"/>
	<link rel="alternate" type="text/html" href="http://debianws.lexgopc.com/wiki143/index.php?title=Stackless_Python&amp;action=history"/>
	<updated>2026-04-21T15:20:14Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>http://debianws.lexgopc.com/wiki143/index.php?title=Stackless_Python&amp;diff=1451710&amp;oldid=prev</id>
		<title>imported&gt;TetrarchTurtle: Fixed grammar</title>
		<link rel="alternate" type="text/html" href="http://debianws.lexgopc.com/wiki143/index.php?title=Stackless_Python&amp;diff=1451710&amp;oldid=prev"/>
		<updated>2025-05-10T15:11:42Z</updated>

		<summary type="html">&lt;p&gt;Fixed grammar&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Short description|Alternative Python implementation}}&lt;br /&gt;
{{multiple|&lt;br /&gt;
{{primary sources|date=December 2017}}&lt;br /&gt;
{{refimprove|date=March 2013}}&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox software&lt;br /&gt;
| name = Stackless Python&lt;br /&gt;
| logo = &lt;br /&gt;
| screenshot = &lt;br /&gt;
| caption = &lt;br /&gt;
| collapsible = &lt;br /&gt;
| author = Christian Tismer&lt;br /&gt;
| developer = Anselm Kruis&lt;br /&gt;
| released = {{Start date and age|1998}}&lt;br /&gt;
| latest release version = {{wikidata|property|edit|reference|P348}}&lt;br /&gt;
| latest release date = {{Start date and age|2020|01|22}}&lt;br /&gt;
| latest preview version = 3.9.0 alpha 0 &amp;lt;!-- {{start date and age|{{wikidata|qualifier|P348|P577}}}} --&amp;gt;&lt;br /&gt;
| latest preview date = &lt;br /&gt;
| frequently updated = &lt;br /&gt;
| programming language = [[C (programming language)|C]], [[Python (programming language)|Python]]&lt;br /&gt;
| operating system = [[Linux]], [[macOS]], [[Microsoft Windows|Windows]]&lt;br /&gt;
| platform = &lt;br /&gt;
| size = &lt;br /&gt;
| language = &lt;br /&gt;
| status = &lt;br /&gt;
| genre = [[Interpreter (computing)|Interpreter]]&lt;br /&gt;
| license = [[Python Software Foundation License]]&lt;br /&gt;
| website = {{URL|https://github.com/stackless-dev/stackless/wiki/|github.com/stackless-dev}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Stackless Python&amp;#039;&amp;#039;&amp;#039;, or &amp;#039;&amp;#039;&amp;#039;Stackless&amp;#039;&amp;#039;&amp;#039;, was a [[Python (programming language)|Python programming language]] interpreter. Its Github repository has been archived since February 2025, and the project has been officially discontinued.  &lt;br /&gt;
&lt;br /&gt;
It was so named because it avoids depending on the [[C (programming language)|C]] [[call stack]] for its own stack. In practice, Stackless Python uses the C stack, but the stack is cleared between function calls.&amp;lt;ref&amp;gt;Archived at [https://ghostarchive.org/varchive/youtube/20211211/pDkrkP0yf70 Ghostarchive]{{cbignore}} and the [https://web.archive.org/web/20140103062231/http://www.youtube.com/watch?v=pDkrkP0yf70 Wayback Machine]{{cbignore}}: {{cite AV media| url = https://www.youtube.com/watch?v=pDkrkP0yf70| title = The story of stackless Python | website=[[YouTube]]}}{{cbignore}}&amp;lt;/ref&amp;gt; The most prominent feature of Stackless is [[microthread]]s, which avoid much of the overhead associated with usual operating system [[Thread (computing)|threads]]. In addition to Python features, Stackless also adds support for [[coroutine]]s, communication [[channel (programming)|channels]], and task [[serialization]].&lt;br /&gt;
&lt;br /&gt;
==Design==&lt;br /&gt;
With Stackless Python, a running program is split into microthreads that are managed by the language interpreter itself, not the operating system [[kernel (operating system)|kernel]]—[[context switch]]ing and [[scheduling (computing)|task scheduling]] is done purely in the interpreter (these are thus also regarded as a form of [[green thread]]). Microthreads manage the execution of different subtasks in a program on the same CPU core. Thus, they are an alternative to event-based asynchronous programming and also avoid the overhead of using separate threads for single-core programs (because no mode switching between user mode and kernel mode needs to be done, so CPU usage can be reduced).&lt;br /&gt;
&lt;br /&gt;
Although microthreads make it easier to deal with running subtasks on a single core, Stackless Python does not remove CPython&amp;#039;s [[global interpreter lock]] (GIL), nor does it use multiple threads and/or processes. So it allows only [[cooperative multitasking]] on a shared CPU and not [[parallel computing|parallelism]] (preemption was originally not available but is now in some form&amp;lt;ref&amp;gt;{{cite web |url=https://bitbucket.org/stackless-dev/stackless/wiki/Home |title=About Stackless |quote=a round robin scheduler is built in. It can be used to schedule tasklets either cooperatively or preemptively. |accessdate=26 August 2016 |archive-date=23 June 2020 |archive-url=https://web.archive.org/web/20200623233250/https://bitbucket.org/stackless-dev/stackless/wiki/Home |url-status=dead }}&amp;lt;/ref&amp;gt;). To use multiple CPU cores, one would still need to build an interprocess communication system on top of Stackless Python processes.&lt;br /&gt;
&lt;br /&gt;
Due to the considerable number of changes in the source, Stackless Python cannot be installed on a preexisting Python installation as an [[plug-in (computing)|extension]] or [[library (computing)|library]]. It is instead a complete Python distribution in itself. The majority of Stackless&amp;#039;s features have also been implemented in [[PyPy]], a [[Self-hosting (compilers)|self-hosting]] Python interpreter and [[Just-in-time compilation|JIT compiler]].&amp;lt;ref&amp;gt;{{cite web|url=https://pypy.readthedocs.org/en/latest/stackless.html|title=Application-level Stackless features — PyPy documentation|website=pypy.readthedocs.org}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Use==&lt;br /&gt;
Although the whole Stackless is a separate distribution, its switching functionality has been successfully packaged as a [[CPython]] extension called greenlet.&amp;lt;ref&amp;gt;{{cite web|url=https://greenlet.readthedocs.org/en/latest/|title=greenlet: Lightweight concurrent programming — greenlet 0.4.0 documentation|website=greenlet.readthedocs.org}}&amp;lt;/ref&amp;gt; It is used by a number of libraries (e.g. gevent&amp;lt;ref&amp;gt;{{cite web|url=https://www.gevent.org|title=What is gevent? — gevent 1.3.0.dev0 documentation|website=www.gevent.org}}&amp;lt;/ref&amp;gt;) to provide a [[green thread|green threading]] solution for CPython. Python since has received a native solution for green threads: [[Async/await|await]]/async.&lt;br /&gt;
&lt;br /&gt;
Stackless is used extensively in the implementation of the &amp;#039;&amp;#039;[[Eve Online]]&amp;#039;&amp;#039; massively multiplayer online game as well as in [[IronPort]]&amp;#039;s mail platform.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
{{Portal|Free and open-source software}}&lt;br /&gt;
* [[Erlang (programming language)]]&lt;br /&gt;
* [[Limbo (programming language)]]&lt;br /&gt;
* [[Go (programming language)]]&lt;br /&gt;
* [[SCOOP (software)]]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
{{Reflist}}&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
* {{Official website}}&lt;br /&gt;
* Stackless Python Documentation for: [https://stackless.readthedocs.io/en/3.7-slp/stackless-python.html 3.7-slp], [https://stackless.readthedocs.io/en/3.6-slp/stackless-python.html 3.6-slp], [https://stackless.readthedocs.io/en/3.5-slp/stackless-python.html 3.5-slp], [https://stackless.readthedocs.io/en/3.4-slp/stackless-python.html 3.4-slp], [https://stackless.readthedocs.io/en/2.7-slp/stackless-python.html 2.7-slp]&lt;br /&gt;
* {{GitHub|stackless-dev/stackless}}&lt;br /&gt;
* [https://kalogirou.net/2005/08/10/multithreaded-game-scripting-with-stackless-python/ Multithreaded Game Scripting with Stackless Python] by Harry Kalogirou&lt;br /&gt;
* [https://web.archive.org/web/20121108011701/http://zope.stackless.com/spcpaper.htm Continuations and Stackless Python] by Christian Tismer&lt;br /&gt;
&lt;br /&gt;
{{Python (programming language)}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Concurrent computing]]&lt;br /&gt;
[[Category:Python (programming language) implementations]]&lt;br /&gt;
[[Category:Software using the Python Software Foundation License]]&lt;/div&gt;</summary>
		<author><name>imported&gt;TetrarchTurtle</name></author>
	</entry>
</feed>