##// END OF EJS Templates
zstd: vendor zstd 1.1.1...
zstd: vendor zstd 1.1.1 zstd is a new compression format and it is awesome, yielding higher compression ratios and significantly faster compression and decompression operations compared to zlib (our current compression engine of choice) across the board. We want zstd to be a 1st class citizen in Mercurial and to eventually be the preferred compression format for various operations. This patch starts the formal process of supporting zstd by vendoring a copy of zstd. Why do we need to vendor zstd? Good question. First, zstd is relatively new and not widely available yet. If we didn't vendor zstd or distribute it with Mercurial, most users likely wouldn't have zstd installed or even available to install. What good is a feature if you can't use it? Vendoring and distributing the zstd sources gives us the highest liklihood that zstd will be available to Mercurial installs. Second, the Python bindings to zstd (which will be vendored in a separate changeset) make use of zstd APIs that are only available via static linking. One reason they are only available via static linking is that they are unstable and could change at any time. While it might be possible for the Python bindings to attempt to talk to different versions of the zstd C library, the safest thing to do is link against a specific, known-working version of zstd. This is why the Python zstd bindings themselves vendor zstd and why we must as well. This also explains why the added files are in a "python-zstandard" directory. The added files are from the 1.1.1 release of zstd (Git commit 4c0b44f8ced84c4c8edfa07b564d31e4fa3e8885 from https://github.com/facebook/zstd) and are added without modifications. Not all files from the zstd "distribution" have been added. Notably missing are files to support interacting with "legacy," pre-1.0 versions of zstd. The decision of which files to include is made by the upstream python-zstandard project (which I'm the author of). The files in this commit are a snapshot of the files from the 0.5.0 release of that project, Git commit e637c1b214d5f869cf8116c550dcae23ec13b677 from https://github.com/indygreg/python-zstandard.

File last commit:

r30333:776a6d29 default
r30434:2e484bde default
Show More
test-check-py3-compat.t
35 lines | 1.9 KiB | text/troff | Tads3Lexer
/ tests / test-check-py3-compat.t
Gregory Szorc
tests: add test for Python 3 compatibility...
r27279 #require test-repo
timeless
tests: silence test-repo obsolete warning...
r29219 $ . "$TESTDIR/helpers-testrepo.sh"
Gregory Szorc
tests: add test for Python 3 compatibility...
r27279 $ cd "$TESTDIR"/..
Matt Harbison
tests: convert directory separators to '/' for MSYS in test-check-py-compat...
r27438 $ hg files 'set:(**.py)' | sed 's|\\|/|g' | xargs python contrib/check-py3-compat.py
Martijn Pieters
fsmonitor: dependencies for new experimental extension...
r28432 hgext/fsmonitor/pywatchman/__init__.py not using absolute_import
hgext/fsmonitor/pywatchman/__init__.py requires print_function
hgext/fsmonitor/pywatchman/capabilities.py not using absolute_import
hgext/fsmonitor/pywatchman/pybser.py not using absolute_import
Gregory Szorc
tests: add test for Python 3 compatibility...
r27279 i18n/check-translation.py not using absolute_import
setup.py not using absolute_import
tests/test-demandimport.py not using absolute_import
Gregory Szorc
tests: perform an ast parse with Python 3...
r28583
#if py3exe
Augie Fackler
py3: split check of pygments-using files from the rest of the tree...
r29886 $ hg files 'set:(**.py) - grep(pygments)' | sed 's|\\|/|g' \
Yuya Nishihara
py3: automatically glob out line numbers from check-py3-compat output...
r29810 > | xargs $PYTHON3 contrib/check-py3-compat.py \
> | sed 's/[0-9][0-9]*)$/*)/'
Mateusz Kwapich
py3: use raw strings in line continuation (convert ext)...
r30132 hgext/convert/transport.py: error importing: <ImportError> No module named 'svn.client' (error at transport.py:*)
Yuya Nishihara
py3: make check-py3-compat.py load modules in standard manner...
r30094 hgext/fsmonitor/pywatchman/capabilities.py: error importing: <ImportError> No module named 'pybser' (error at __init__.py:*)
hgext/fsmonitor/pywatchman/pybser.py: error importing: <ImportError> No module named 'pybser' (error at __init__.py:*)
hgext/fsmonitor/watchmanclient.py: error importing: <ImportError> No module named 'pybser' (error at __init__.py:*)
hgext/mq.py: error importing: <TypeError> __import__() argument 1 must be str, not bytes (error at extensions.py:*)
Yuya Nishihara
py3: update test-check-py3-compat.t output...
r30333 mercurial/scmwindows.py: error importing: <ImportError> No module named 'msvcrt' (error at win32.py:*)
Gregory Szorc
statprof: use print function
r30257 mercurial/statprof.py: error importing: <TypeError> __slots__ items must be strings, not 'bytes' (error at statprof.py:*)
Yuya Nishihara
py3: include module filename in check-py3-compat.py output...
r30093 mercurial/win32.py: error importing: <ImportError> No module named 'msvcrt' (error at win32.py:*)
mercurial/windows.py: error importing: <ImportError> No module named 'msvcrt' (error at windows.py:*)
Gregory Szorc
tests: perform an ast parse with Python 3...
r28583
#endif
Augie Fackler
py3: split check of pygments-using files from the rest of the tree...
r29886
#if py3exe py3pygments
$ hg files 'set:(**.py) and grep(pygments)' | sed 's|\\|/|g' \
> | xargs $PYTHON3 contrib/check-py3-compat.py \
> | sed 's/[0-9][0-9]*)$/*)/'
#endif