Mercurial > hg
view tests/test-encode.t @ 50303:0d3690f8ce2a stable
cext: fix for PyLong refactoring in CPython 3.12
Compiling Mercurial with Python 3.12 a5 would fail with:
mercurial/cext/dirs.c: In function '_addpath':
mercurial/cext/dirs.c:19:44: error: 'PyLongObject' {aka 'struct _longobject'} has no member named 'ob_digit'
19 | #define PYLONG_VALUE(o) ((PyLongObject *)o)->ob_digit[0]
| ^~
mercurial/cext/dirs.c:97:25: note: in expansion of macro 'PYLONG_VALUE'
97 | PYLONG_VALUE(val) += 1;
| ^~~~~~~~~~~~
mercurial/cext/dirs.c:19:44: error: 'PyLongObject' {aka 'struct _longobject'} has no member named 'ob_digit'
19 | #define PYLONG_VALUE(o) ((PyLongObject *)o)->ob_digit[0]
| ^~
mercurial/cext/dirs.c:108:17: note: in expansion of macro 'PYLONG_VALUE'
108 | PYLONG_VALUE(val) = 1;
| ^~~~~~~~~~~~
mercurial/cext/dirs.c: In function '_delpath':
mercurial/cext/dirs.c:19:44: error: 'PyLongObject' {aka 'struct _longobject'} has no member named 'ob_digit'
19 | #define PYLONG_VALUE(o) ((PyLongObject *)o)->ob_digit[0]
| ^~
mercurial/cext/dirs.c:145:23: note: in expansion of macro 'PYLONG_VALUE'
145 | if (--PYLONG_VALUE(val) <= 0) {
| ^~~~~~~~~~~~
This was caused by
https://github.com/python/cpython/commit/c1b1f51cd1632f0b77dacd43092fb44ed5e053a9 .
author | Mads Kiilerich <mads@kiilerich.com> |
---|---|
date | Tue, 07 Mar 2023 16:25:51 +0100 |
parents | 55c6ebd11cb9 |
children |
line wrap: on
line source
Test encode/decode filters $ hg init repo $ cd repo $ cat > .hg/hgrc <<EOF > [encode] > not.gz = tr [:lower:] [:upper:] > *.gz = gzip -d > [decode] > not.gz = tr [:upper:] [:lower:] > *.gz = gzip > EOF $ echo "this is a test" | gzip > a.gz $ echo "this is a test" > not.gz $ hg add * $ hg ci -m "test" no changes $ hg status $ touch * no changes $ hg status check contents in repo are encoded $ hg debugdata a.gz 0 this is a test $ hg debugdata not.gz 0 THIS IS A TEST check committed content was decoded $ gunzip < a.gz this is a test $ cat not.gz this is a test $ rm * $ hg co -C 2 files updated, 0 files merged, 0 files removed, 0 files unresolved check decoding of our new working dir copy $ gunzip < a.gz this is a test $ cat not.gz this is a test check hg cat operation $ hg cat a.gz this is a test $ hg cat --decode a.gz | gunzip this is a test $ mkdir subdir $ cd subdir $ hg -R .. cat ../a.gz this is a test $ hg -R .. cat --decode ../a.gz | gunzip this is a test $ cd .. check tempfile filter $ hg cat a.gz --decode --config 'decode.*.gz=tempfile:gzip -c INFILE > OUTFILE' | gunzip this is a test $ hg cat a.gz --decode --config 'decode.*.gz=tempfile:sh -c "exit 1"' abort: command '*' failed: exited with status 1 (glob) [255] $ cd ..