Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
pygolang
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Levin Zimmermann
pygolang
Commits
4ca65816
Commit
4ca65816
authored
Aug 29, 2019
by
Kirill Smelkov
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
pygolang v0.0.3
parent
3b241983
Changes
4
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
117 additions
and
2 deletions
+117
-2
CHANGELOG.rst
CHANGELOG.rst
+102
-0
README.rst
README.rst
+7
-1
golang/__init__.py
golang/__init__.py
+1
-1
setup.py
setup.py
+7
-0
No files found.
CHANGELOG.rst
View file @
4ca65816
Pygolang
change
history
-----------------------
0.0.3
(
2019
-
08
-
29
)
~~~~~~~~~~~~~~~~~~
-
Provide
Cython
/
nogil
API
with
goroutines
and
channels
.
Cython
API
is
not
only
faster
compared
to
Python
version
,
but
also
,
due
to
*
nogil
*
property
,
allows
to
build
concurrent
systems
without
limitations
imposed
by
Python
's GIL.
This work was motivated by wendelin.core__ v2, which, due to its design,
would deadlock if it tries to take the GIL in its pinner thread.
Implementation of Python-level goroutines and channels becomes tiny wrapper
around Cython/nogil API. This brings in ~5x speedup to Python-level `golang`
package along the way (`commit 1`__, 2__, 3__, 4__, 5__, 6__, 7__, 8__, 9__,
10__, 11__, 12__, 13__, 14__, 15__, 16__, 17__, 18__, 19__, 20__, 21__, 22__,
23__, 24__, 25__, 26__, 27__).
__ https://pypi.org/project/wendelin.core
__ https://lab.nexedi.com/kirr/pygolang/commit/d98e42e3
__ https://lab.nexedi.com/kirr/pygolang/commit/352628b5
__ https://lab.nexedi.com/kirr/pygolang/commit/fa667412
__ https://lab.nexedi.com/kirr/pygolang/commit/f812faa2
__ https://lab.nexedi.com/kirr/pygolang/commit/88eb8fe0
__ https://lab.nexedi.com/kirr/pygolang/commit/62bdb806
__ https://lab.nexedi.com/kirr/pygolang/commit/8fa3c15b
__ https://lab.nexedi.com/kirr/pygolang/commit/ad00be70
__ https://lab.nexedi.com/kirr/pygolang/commit/ce8152a2
__ https://lab.nexedi.com/kirr/pygolang/commit/7ae8c4f3
__ https://lab.nexedi.com/kirr/pygolang/commit/f971a2a8
__ https://lab.nexedi.com/kirr/pygolang/commit/83259a1b
__ https://lab.nexedi.com/kirr/pygolang/commit/311df9f1
__ https://lab.nexedi.com/kirr/pygolang/commit/7e55394d
__ https://lab.nexedi.com/kirr/pygolang/commit/790189e3
__ https://lab.nexedi.com/kirr/pygolang/commit/a508be9a
__ https://lab.nexedi.com/kirr/pygolang/commit/a0714b8e
__ https://lab.nexedi.com/kirr/pygolang/commit/1bcb8297
__ https://lab.nexedi.com/kirr/pygolang/commit/ef076d3a
__ https://lab.nexedi.com/kirr/pygolang/commit/4166dc65
__ https://lab.nexedi.com/kirr/pygolang/commit/b9333e00
__ https://lab.nexedi.com/kirr/pygolang/commit/d5e74947
__ https://lab.nexedi.com/kirr/pygolang/commit/2fc71566
__ https://lab.nexedi.com/kirr/pygolang/commit/e4dddf15
__ https://lab.nexedi.com/kirr/pygolang/commit/69db91bf
__ https://lab.nexedi.com/kirr/pygolang/commit/9efb6575
__ https://lab.nexedi.com/kirr/pygolang/commit/3b241983
- Provide way to install Pygolang with extra requirements in the form of
`pygolang[<package>]`. For example `pygolang[x.perf.benchlib]` additionally
selects NumPy, `pygolang[pyx.build]` - everything needed by build system, and
`pygolang[all]` selects everything (commit__).
__ https://lab.nexedi.com/kirr/pygolang/commit/89a1061a
- Improve tests to exercise the implementation more thoroughly in many
places (`commit 1`__, 2__, 3__, 4__, 5__, 6__).
__ https://lab.nexedi.com/kirr/pygolang/commit/773d8fb2
__ https://lab.nexedi.com/kirr/pygolang/commit/3e5b5f01
__ https://lab.nexedi.com/kirr/pygolang/commit/7f2362dd
__ https://lab.nexedi.com/kirr/pygolang/commit/c5810987
__ https://lab.nexedi.com/kirr/pygolang/commit/cb5bfdd2
__ https://lab.nexedi.com/kirr/pygolang/commit/02f6991f
- Fix race bugs in buffered channel send and receive (`commit 1`__, 2__).
__ https://lab.nexedi.com/kirr/pygolang/commit/eb8a1fef
__ https://lab.nexedi.com/kirr/pygolang/commit/c6bb9eb3
- Fix deadlock in `sync.WorkGroup` tests (commit__).
__ https://lab.nexedi.com/kirr/pygolang/commit/b8b042c5
- Fix `@func(cls) def name` not to override `name` in calling context (commit__).
__ https://lab.nexedi.com/kirr/pygolang/commit/924a808c
- Fix `sync.WorkGroup` to propagate all exception types, not only those derived
from `Exception` (commit__).
__ https://lab.nexedi.com/kirr/pygolang/commit/79aab7df
- Replace `threading.Event` with `chan` in `sync.WorkGroup` implementation.
This removes reliance on outside semaphore+waitlist code and speeds up
`sync.WorkGroup` along the way (commit__).
__ https://lab.nexedi.com/kirr/pygolang/commit/78d85cdc
- Speedup `sync.WorkGroup` by not using `@func` at runtime (commit__).
__ https://lab.nexedi.com/kirr/pygolang/commit/94c6160b
- Add benchmarks for `chan`, `select`, `@func` and `defer` (commit__).
__ https://lab.nexedi.com/kirr/pygolang/commit/3c55ca59
.. readme_renderer/pypi don'
t
support
`..
class
::
align
-
center
`
..
|
_
|
unicode
::
0xA0
..
nbsp
|
_
|
|
_
|
|
_
|
|
_
|
|
_
|
|
_
|
|
_
|
|
_
|
*
This
release
is
dedicated
to
the
memory
of
*
|
Вера
Павловна
Супрун
|
_
.
..
|
Вера
Павловна
Супрун
|
replace
::
*
Вера
Павловна
Супрун
*
..
_
Вера
Павловна
Супрун
:
https
://
navytux
.
spb
.
ru
/
memory
/%
D0
%
A2
%
D1
%
91
%
D1
%
82
%
D1
%
8F
%
20
%
D0
%
92
%
D0
%
B5
%
D1
%
80
%
D0
%
B0
.
pdf
#
page
=
3
0.0.2
(
2019
-
05
-
16
)
~~~~~~~~~~~~~~~~~~
...
...
README.rst
View file @
4ca65816
...
...
@@ -21,6 +21,11 @@ between Python/Cython and Go environments.
__ `Additional packages and utilities`_
.. contents::
:depth: 1
GPython
-------
...
...
@@ -148,6 +153,7 @@ practically natively modelled with `try`/`except`.
If `defer` is used, the function that uses it must be wrapped with `@func`
decorator.
Import
------
...
...
@@ -288,7 +294,7 @@ handle concurrency in structured ways:
- `golang.time` provides timers integrated with channels.
.. [*] See `Go Concurrency Patterns: Context`__ for overview
of contexts
.
.. [*] See `Go Concurrency Patterns: Context`__ for overview.
__ https://blog.golang.org/context
...
...
golang/__init__.py
View file @
4ca65816
...
...
@@ -31,7 +31,7 @@ See also package golang.pyx which provides similar functionality for Cython nogi
from
__future__
import
print_function
,
absolute_import
__version__
=
"0.0.
2
"
__version__
=
"0.0.
3
"
__all__
=
[
'go'
,
'chan'
,
'select'
,
'default'
,
'nilchan'
,
'defer'
,
'panic'
,
'recover'
,
'func'
,
'gimport'
]
...
...
setup.py
View file @
4ca65816
...
...
@@ -182,6 +182,11 @@ setup(
readfile
(
'README.rst'
),
readfile
(
'CHANGELOG.rst'
)),
long_description_content_type
=
'text/x-rst'
,
url
=
'https://lab.nexedi.com/kirr/pygolang'
,
project_urls
=
{
'Bug Tracker'
:
'https://lab.nexedi.com/kirr/pygolang/issues'
,
'Source Code'
:
'https://lab.nexedi.com/kirr/pygolang'
,
'Documentation'
:
'https://pypi.org/project/pygolang'
,
},
license
=
'GPLv3+ with wide exception for Open-Source'
,
author
=
'Kirill Smelkov'
,
author_email
=
'kirr@nexedi.com'
,
...
...
@@ -237,6 +242,8 @@ setup(
classifiers
=
[
_
.
strip
()
for
_
in
"""
\
Development Status :: 3 - Alpha
Intended Audience :: Developers
Programming Language :: Python
Programming Language :: Cython
Programming Language :: Python :: 2
Programming Language :: Python :: 2.7
Programming Language :: Python :: 3
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment