Commit 1573d101 authored by Kirill Smelkov's avatar Kirill Smelkov

pygolang v0.0.4

This release is bugfix-only. Compared to pygolang v0.0.3 (4ca65816)
the change in speed is likely within noise:

     (on i7@2.6GHz)

thread runtime:

    name             old time/op  new time/op  delta
    go               18.3µs ± 1%  18.3µs ± 1%    ~     (p=0.218 n=10+10)
    chan             2.97µs ± 5%  2.97µs ± 8%    ~     (p=0.781 n=10+10)
    select           3.59µs ± 2%  3.55µs ± 5%    ~     (p=0.447 n=9+10)
    def              56.0ns ± 0%  55.0ns ± 0%  -1.79%  (p=0.000 n=10+10)
    func_def         43.7µs ± 1%  43.8µs ± 1%  +0.35%  (p=0.029 n=10+10)
    call             65.0ns ± 0%  62.3ns ± 1%  -4.15%  (p=0.000 n=10+10)
    func_call        1.06µs ± 1%  1.04µs ± 0%  -1.26%  (p=0.000 n=10+8)
    try_finally       137ns ± 1%   137ns ± 0%    ~     (p=1.000 n=10+10)
    defer            2.32µs ± 0%  2.33µs ± 1%  +0.43%  (p=0.000 n=9+10)
    workgroup_empty  37.6µs ± 1%  37.1µs ± 2%  -1.29%  (p=0.003 n=10+10)
    workgroup_raise  47.9µs ± 1%  47.6µs ± 0%  -0.63%  (p=0.001 n=9+9)

gevent runtime:

    name             old time/op  new time/op  delta
    go               15.8µs ± 0%  16.1µs ± 1%  +2.18%  (p=0.000 n=9+10)
    chan             7.36µs ± 0%  7.21µs ± 0%  -1.97%  (p=0.000 n=8+10)
    select           10.4µs ± 0%  10.5µs ± 0%  +0.71%  (p=0.000 n=10+10)
    def              57.0ns ± 0%  55.0ns ± 0%  -3.51%  (p=0.000 n=10+10)
    func_def         43.3µs ± 1%  44.1µs ± 2%  +1.81%  (p=0.000 n=10+10)
    call             66.0ns ± 0%  65.0ns ± 0%  -1.52%  (p=0.000 n=10+10)
    func_call        1.04µs ± 1%  1.06µs ± 1%  +1.48%  (p=0.000 n=10+10)
    try_finally       137ns ± 1%   136ns ± 0%  -1.31%  (p=0.000 n=10+10)
    defer            2.32µs ± 0%  2.31µs ± 1%    ~     (p=0.472 n=8+10)
    workgroup_empty  56.0µs ± 0%  55.7µs ± 0%  -0.49%  (p=0.000 n=10+10)
    workgroup_raise  71.3µs ± 1%  71.7µs ± 1%  +0.62%  (p=0.001 n=10+10)
parent 2e01f9bd
Pygolang change history Pygolang change history
----------------------- -----------------------
0.0.4 (2019-09-17)
~~~~~~~~~~~~~~~~~~
- Add ThreadSanitizer, AddressSanitizer and Python debug builds to testing coverage (commit__).
__ https://lab.nexedi.com/kirr/pygolang/commit/4dc1a7f0
- Fix race bugs in `close`, `recv` and `select` (`commit 1`__, 2__, 3__, 4__, 5__, 6__).
A 25-years old race condition in Python was also discovered while doing
quality assurance on concurrency (`commit 7`__, `Python bug`__, `PyPy bug`__).
__ https://lab.nexedi.com/kirr/pygolang/commit/78e38690
__ https://lab.nexedi.com/kirr/pygolang/commit/44737253
__ https://lab.nexedi.com/kirr/pygolang/commit/c92a4830
__ https://lab.nexedi.com/kirr/pygolang/commit/dcf4ebd1
__ https://lab.nexedi.com/kirr/pygolang/commit/65c43848
__ https://lab.nexedi.com/kirr/pygolang/commit/5aa1e899
__ https://lab.nexedi.com/kirr/pygolang/commit/5142460d
__ https://bugs.python.org/issue38106
__ https://bitbucket.org/pypy/pypy/issues/3072
- If C-level panic causes termination, its argument is now printed (commit__).
__ https://lab.nexedi.com/kirr/pygolang/commit/f2b77c94
0.0.3 (2019-08-29) 0.0.3 (2019-08-29)
~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~
......
...@@ -31,7 +31,7 @@ See also package golang.pyx which provides similar functionality for Cython nogi ...@@ -31,7 +31,7 @@ See also package golang.pyx which provides similar functionality for Cython nogi
from __future__ import print_function, absolute_import from __future__ import print_function, absolute_import
__version__ = "0.0.3" __version__ = "0.0.4"
__all__ = ['go', 'chan', 'select', 'default', 'nilchan', 'defer', 'panic', 'recover', 'func', 'gimport'] __all__ = ['go', 'chan', 'select', 'default', 'nilchan', 'defer', 'panic', 'recover', 'func', 'gimport']
......
...@@ -93,7 +93,7 @@ const char *recover() { ...@@ -93,7 +93,7 @@ const char *recover() {
} }
// bug indicates internal bug in golang implementation. // bug indicates internal bug in libgolang implementation.
struct Bug : exception { struct Bug : exception {
const string msg; const string msg;
......
...@@ -69,7 +69,7 @@ version = _.group(1) ...@@ -69,7 +69,7 @@ version = _.group(1)
# uninstall. # uninstall.
# #
# NOTE in some cases (see below e.g. about bdist_wheel) we accept for gpython # NOTE in some cases (see below e.g. about bdist_wheel) we accept for gpython
# to be generated not via XInstallGPython - becuase in those cases pkg_resources # to be generated not via XInstallGPython - because in those cases pkg_resources
# and entry points are not used - just plain `import gpython`. # and entry points are not used - just plain `import gpython`.
class XInstallGPython: class XInstallGPython:
gpython_installed = 0 gpython_installed = 0
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment