Pablo Galindo Salgado added the comment:
Indeed, as Andre mentions your example is different because in you case the
call is interpreted as a generator comprehension, not as a function call.
--
resolution: -> not a bug
stage: -> resolved
status: open -&g
Change by Pablo Galindo Salgado :
--
pull_requests: +25376
pull_request: https://github.com/python/cpython/pull/26792
___
Python tracker
<https://bugs.python.org/issue44
New submission from Pablo Galindo Salgado :
This got me confused for a sec when doing some live demo:
>>> match x:
...case A(y=1, foo):
File "", line 2
case A(y=1, foo):
^
SyntaxError: invalid syntax
I propose to improve this to:
>>>
Change by Pablo Galindo Salgado :
--
keywords: +patch
pull_requests: +25377
stage: -> patch review
pull_request: https://github.com/python/cpython/pull/26793
___
Python tracker
<https://bugs.python.org/issu
Pablo Galindo Salgado added the comment:
Btw, I noticed this is allowed:
>>> match x:
...case A(foo, t=3):
......
...
but this is not:
>>> match x:
...case A(foo=3, t):
Is that on pourpose?
--
___
Pyth
Pablo Galindo Salgado added the comment:
If this is supposed to mirror function calls, maybe the error should be::
>>> match a:
...case A(foo=3, t):
File "", line 2
case A(foo=3, t):
^
SyntaxError: positional patterns foll
Pablo Galindo Salgado added the comment:
New changeset a8c418d5ed1103106db547aa576b82c6031985a4 by Pablo Galindo in
branch '3.10':
[3.10] bpo-44368: Improve syntax errors with invalid as pattern targets
(GH-26632) (GH-26792)
https://github.com/python/cpyt
Pablo Galindo Salgado added the comment:
Mark, can you take a look at this?
--
nosy: +pablogsal
versions: +Python 3.11 -Python 3.10
___
Python tracker
<https://bugs.python.org/issue44
Change by Pablo Galindo Salgado :
--
priority: normal -> release blocker
___
Python tracker
<https://bugs.python.org/issue6>
___
___
Python-bugs-list mai
Change by Pablo Galindo Salgado :
--
keywords: +3.10regression
priority: normal -> deferred blocker
___
Python tracker
<https://bugs.python.org/issu
Pablo Galindo Salgado added the comment:
New changeset 185ecdc1463c527743eeb16a5deef75c1985de79 by Erlend Egeberg
Aasland in branch 'main':
bpo-40956: Convert sqlite3.connect and sqlite3.Connection.__init__ to AC
(GH-24421)
https://github.com/python/cpyt
Pablo Galindo Salgado added the comment:
New changeset 7d0a47e1affd0a2f56600f3e9473f55f931595bd by Erlend Egeberg
Aasland in branch 'main':
bpo-44087: Disallow instantiation of sqlite3.Statement (GH-26567)
https://github.com/python/cpython/commit/7d0a47e1affd0a2f56600f3e9473f5
Change by Pablo Galindo Salgado :
--
resolution: -> fixed
stage: patch review -> resolved
status: open -> closed
___
Python tracker
<https://bugs.python.or
Pablo Galindo Salgado added the comment:
New changeset 5f0fc30de46d41dccf04096df12664fc0a684ca2 by Erlend Egeberg
Aasland in branch 'main':
bpo-44430: Refactor `sqlite3` threading tests (GH-26748)
https://github.com/python/cpython/commit/5f0fc30de46d41dccf04096df12664
Pablo Galindo Salgado added the comment:
Erlend, is anything left in this issue?
--
___
Python tracker
<https://bugs.python.org/issue40956>
___
___
Python-bug
Pablo Galindo Salgado added the comment:
New changeset a317778fd58b1c6b250feffbdb4ecf15e293ef48 by Georg Sauthoff in
branch 'main':
bpo-44077: Expose IP_RECVTOS in the socket module (GH-25992)
https://github.com/python/cpython/commit/a317778fd58b1c6b250feffbdb4ecf15e293ef48
-
Pablo Galindo Salgado added the comment:
New changeset 8673b77e251e42874501a47b1df86c6bde4fe1d2 by Miss Islington (bot)
in branch '3.10':
bpo-41299: Reduce lag in Windows threading timeouts by using a higher precision
time source (GH-26568) (GH-26580)
https://github.com/pyth
Pablo Galindo Salgado added the comment:
New changeset f87d2038fadd9c067d50fb2f1d7c2f37b9f3893a by Miss Islington (bot)
in branch '3.10':
bpo-43667: Add news fragment for Solaris changes (GH-26405) (GH-26498)
https://github.com/python/cpython/commit/f87d2038fadd9c067d50fb2f1d7c2f
Pablo Galindo Salgado added the comment:
New changeset 5fbccb763ce540c0d07be86660e0357bffc69d76 by Miss Islington (bot)
in branch '3.10':
bpo-43298: Improved error message when building without the Windows SDK
installed (GH-26800) (GH-26802)
https://github.com/python/cpyt
Pablo Galindo Salgado added the comment:
New changeset ccc95c7b4799570c2d7e4de3d579860ad833e1f8 by Erlend Egeberg
Aasland in branch '3.10':
[3.10] bpo-44087: Disallow instantiation of sqlite3.Statement (GH-26567)
(GH-26816)
https://github.com/python/cpyt
Change by Pablo Galindo Salgado :
--
nosy: +rhettinger
___
Python tracker
<https://bugs.python.org/issue44467>
___
___
Python-bugs-list mailing list
Unsubscribe:
Pablo Galindo Salgado added the comment:
faulthandler has no access to the C-stack so it cannot see the
gc_collect_main() as gdb does.
--
nosy: +pablogsal
___
Python tracker
<https://bugs.python.org/issue44
New submission from Pablo Galindo Salgado :
Using lltrace results in this crash because we are getting the repl with an
exception set:
pop None
Assertion failed: (!_PyErr_Occurred(tstate)), function PyObject_Repr, file
Objects/object.c, line 431.
pop Fatal Python error: Aborted
Current
Change by Pablo Galindo Salgado :
--
keywords: +patch
pull_requests: +25403
stage: -> patch review
pull_request: https://github.com/python/cpython/pull/26822
___
Python tracker
<https://bugs.python.org/issu
Pablo Galindo Salgado added the comment:
New changeset 06cda808f149fae9b4c688f752b6eccd0d455ba4 by Pablo Galindo in
branch 'main':
bpo-44472: Fix ltrace functionality when exceptions are raised (GH-26822)
https://github.com/python/cpython/commit/06cda808f149fae9b4c688f752b6ec
Change by Pablo Galindo Salgado :
--
resolution: -> fixed
stage: patch review -> resolved
status: open -> closed
___
Python tracker
<https://bugs.python.or
Pablo Galindo Salgado added the comment:
Although I simphatise with the frustration and I would really like to skip them
myself, as a release manager I am quite concerned that skip them would masks an
actual regression, as these failures are not present in previous versions
Pablo Galindo Salgado added the comment:
Only on MacOS afaik
--
___
Python tracker
<https://bugs.python.org/issue44229>
___
___
Python-bugs-list mailin
Pablo Galindo Salgado added the comment:
I'm fine with a 3.10 backport as long as this is mentioned in python-dev to
give time for folks to raise concerns. Additionally, please make sure that:
*The test site runs with -Werror as these warnings may make it fail so tests
may need
Pablo Galindo Salgado added the comment:
> but only whether to issue the warning in 3.10 or 3.11. Is that correct?
Correct. It can also be mentioned in a more general message as long as people
know that this is the plan and they have a chance to voice any concern to start
on 3
Pablo Galindo Salgado added the comment:
New changeset 2c1ae09764446beda5248759fb99c859e14f1b25 by Erlend Egeberg
Aasland in branch 'main':
bpo-43553: Improve `sqlite3` test coverage (GH-26886)
https://github.com/python/cpython/commit/2c1ae09764446beda5248759fb99c8
Pablo Galindo Salgado added the comment:
New changeset b5a52eef67997246b4235b5407e52a01e822ce56 by Erlend Egeberg
Aasland in branch 'main':
bpo-44229: Ignore spurious EPROTOTYPE on macOS in test_ssl (GH-26893)
https://github.com/python/cpython/commit/b5a52eef67997246b4235b5407e52a
Pablo Galindo Salgado added the comment:
New changeset 0b6b2865187bca7ed7f1f511a02fc8bd13ee38ca by Mark Shannon in
branch '3.10':
bpo-44297: Add a regression test for line numbers in with statements (GH-26891)
https://github.com/python/cpython/commit/0b6b2865187bca7ed7f1f511a02fc8
Pablo Galindo Salgado added the comment:
New changeset 71ba16b21cb35923098026117b5e6d823c5f5707 by Miss Islington (bot)
in branch '3.8':
bpo-44229: Ignore spurious EPROTOTYPE on macOS in test_ssl (GH-26893) (GH-26895)
https://github.com/python/cpyt
Pablo Galindo Salgado added the comment:
New changeset b19f45533942e4ad7ddf9d2d94f8b87c6f746bce by Erlend Egeberg
Aasland in branch 'main':
bpo-44491: Allow clearing the sqlite3 authoriser callback (GH-26863)
https://github.com/python/cpython/commit/b19f45533942e4ad7ddf9d2d94f8b8
Pablo Galindo Salgado added the comment:
New changeset 0acc258fe6f0ec200ca2f6f9294adbf52a244802 by Pablo Galindo in
branch 'main':
bpo-44456: Improve the syntax error when mixing keyword and positional patterns
(GH-26793)
https://github.com/python/cpyt
Change by Pablo Galindo Salgado :
--
resolution: -> fixed
stage: patch review -> resolved
status: open -> closed
___
Python tracker
<https://bugs.python.or
Change by Pablo Galindo Salgado :
--
resolution: -> fixed
___
Python tracker
<https://bugs.python.org/issue44456>
___
___
Python-bugs-list mailing list
Un
Change by Pablo Galindo Salgado :
--
stage: patch review -> resolved
status: open -> closed
___
Python tracker
<https://bugs.python.org/issue44456>
___
___
Pablo Galindo Salgado added the comment:
In my view, proxies should behave almost exactly as the underliying object, so
using them is as ergonomic as possible. For instance, when using them as a way
to avoid cycles, is quite annoying if you have a hashable object in a
dictionary and they
Pablo Galindo Salgado added the comment:
I assume that the original comment is referring to the case when a proxy is a
key and the original dies, but this just makes the thing inoperable, as
expected:
>>> class A:
... ...
...
>>> a = A()
>>> p = weakref.proxy(a)
Pablo Galindo Salgado added the comment:
Antoine, Neil, what do you think about this?
--
nosy: +nascheme, pitrou
___
Python tracker
<https://bugs.python.org/issue44
Change by Pablo Galindo Salgado :
--
pull_requests: +25518
pull_request: https://github.com/python/cpython/pull/26950
___
Python tracker
<https://bugs.python.org/issue44
Pablo Galindo Salgado added the comment:
New changeset 0d7f7975d55eff7e3dfcebd14e765fc6cd7d3e40 by andrei kulakov in
branch 'main':
bpo-42588: Update the docs for the TopologicalSorter.static_order() method
(GH-26834)
https://github.com/python/cpyt
Pablo Galindo Salgado added the comment:
Thanks, Ran and Andrei for your contributions! :)
--
nosy: -miss-islington
resolution: -> fixed
stage: patch review -> resolved
status: open -> closed
___
Python tracker
<https://bug
Pablo Galindo Salgado added the comment:
This also has the side effect of making marshalled code objects bigger, and we
keep adding to this in 3.11 with the new exception table and soon with PEP 657.
Given that a lot of people are concerned about this and that this change only
affects a
Pablo Galindo Salgado added the comment:
New changeset 3ba65cdcefcec7866be482138a5ea8aafbd07e59 by Miss Islington (bot)
in branch '3.9':
bpo-42588: Update the docs for the TopologicalSorter.static_order() method
(GH-26834) (GH-26952)
https://github.com/python/cpyt
Pablo Galindo Salgado added the comment:
> Anyway, I propose to add a new _PyType_AllocNoTrack() function which
> allocates memory without tracking the newly allocated object directly in the
> GC.
How is that going to help third party extensions and subclasses?
--
nosy: +
Change by Pablo Galindo Salgado :
--
resolution: -> fixed
stage: patch review -> resolved
status: open -> closed
___
Python tracker
<https://bugs.python.or
Pablo Galindo Salgado added the comment:
> About subclasses, I'm not sure if it's safe to call the traverse function if
> a subclass overrides it and visits its own member which are not in the
> built-in type (like dict or tuple).
Technically the traverse should onl
Change by Pablo Galindo Salgado :
--
keywords: +patch
pull_requests: +25521
stage: -> patch review
pull_request: https://github.com/python/cpython/pull/26955
___
Python tracker
<https://bugs.python.org/issu
Pablo Galindo Salgado added the comment:
Thanks Neil for your input. I am indeed reverting that change to its previous
behaviour.
--
___
Python tracker
<https://bugs.python.org/issue44
Pablo Galindo Salgado added the comment:
Just also to be clear on my original message, reverting it to a previous
behaviour would disallow some patterns that could be useful:
>>> class A:
... ...
...
>>> a = A()
>>> d = {a: None}
>>> weakref.proxy(a)
Pablo Galindo Salgado added the comment:
New changeset e2fea101fd5517f33371b04432842b971021c3bf by Pablo Galindo in
branch 'main':
bpo-44523: Remove the pass-through for hash() in weakref proxy objects
(GH-26950)
https://github.com/python/cpyt
Change by Pablo Galindo Salgado :
--
resolution: -> fixed
stage: patch review -> resolved
status: open -> closed
___
Python tracker
<https://bugs.python.or
Pablo Galindo Salgado added the comment:
New changeset f790bc8084d3dfd723889740f9129ac8fcb2fa02 by Miss Islington (bot)
in branch '3.9':
bpo-44523: Remove the pass-through for hash() in weakref proxy objects
(GH-26950) (GH-26960)
https://github.com/python/cpyt
Pablo Galindo Salgado added the comment:
New changeset 98eee94421dcb42c15f2d7fc4cd21357722fbe2a by Pablo Galindo in
branch 'main':
bpo-43950: Add code.co_positions (PEP 657) (GH-26955)
https://github.com/python/cpython/commit/98eee94421dcb42c15f2d7fc4cd213
Pablo Galindo Salgado added the comment:
This commits seems to have broken the tracerefs buildbots:
https://buildbot.python.org/all/#/builders/484/builds/322
https://buildbot.python.org/all/#/builders/678/builds/127
Please, take a look at soon as possible, otherwise per the buildbot policy
Change by Pablo Galindo Salgado :
--
priority: normal -> release blocker
___
Python tracker
<https://bugs.python.org/issue44553>
___
___
Python-bugs-list mai
Change by Pablo Galindo Salgado :
--
pull_requests: +25568
stage: resolved -> patch review
pull_request: https://github.com/python/cpython/pull/27008
___
Python tracker
<https://bugs.python.org/issu
Pablo Galindo Salgado added the comment:
New changeset bc3961485639cc73de7c4c7eed1b56f3c74939bf by Pablo Galindo in
branch 'main':
bpo-44553: Correct failure in tp_new for the union object (GH-27008)
https://github.com/python/cpython/commit/bc3961485639cc73de7c4c7eed1b56
Change by Pablo Galindo Salgado :
--
resolution: -> fixed
stage: patch review -> resolved
status: open -> closed
___
Python tracker
<https://bugs.python.or
Pablo Galindo Salgado added the comment:
New changeset 000b9e803a7ec067da0a43f9a3fec16f1078215a by Miss Islington (bot)
in branch '3.10':
bpo-44553: Correct failure in tp_new for the union object (GH-27008) (GH-27009)
https://github.com/python/cpyt
Pablo Galindo Salgado added the comment:
> Is there a "standard" way for me to quantify the memory impact of these kinds
> of changes?
That is a pointer size per code object. The most standard way is to calculate
the size of all pyc files in the stdlib after compiling t
Pablo Galindo Salgado added the comment:
> So that seems to be about half a MB increase over 25 MB (about 2% relative
> increase).
I personally think that is acceptable, so I would be supportive of the patch
but for context, many folks have indicated that they are worried about this
Pablo Galindo Salgado added the comment:
New changeset d33943a6c368c2184e238019c63ac7a267da5594 by Ken Jin in branch
'main':
bpo-44562: Remove invalid PyObject_GC_Del from error path of types.GenericAlias
… (GH-27016)
https://github.com/python/cpyt
Pablo Galindo Salgado added the comment:
New changeset 4684a34c8d2a2ffac7b779edb4ba57f043783478 by Miss Islington (bot)
in branch '3.9':
bpo-44562: Remove invalid PyObject_GC_Del from error path of types.GenericAlias
… (GH-27016) (GH-27018)
https://github.com/python/cpyt
Pablo Galindo Salgado added the comment:
> And is is correct to call deallocator for not initialized GenericAlias object?
The correct thing to do is to call Py_DECREF so the object is properly unlinked
and the other potential cleanups work. Calling the deallocator directly is
almost alw
Pablo Galindo Salgado added the comment:
> But is alias->origin initialized to safely call Py_XDECREF(alias->origin)?
Why would that be unsafe? PyType_GenericAlloc sets all fields to NULL so that
is going to either be NULL or have an object, no? setup_ga only sets
alias->origin
Pablo Galindo Salgado added the comment:
> AFAIK PyType_GenericAlloc is used indirectly in ga_new(), but not in
> Py_GenericAlias().
Oh, I see what you mean, that's a good point.
--
___
Python tracker
<https://bugs.python.
Change by Pablo Galindo Salgado :
--
pull_requests: +25580
pull_request: https://github.com/python/cpython/pull/27021
___
Python tracker
<https://bugs.python.org/issue44
Change by Pablo Galindo Salgado :
--
pull_requests: +25581
pull_request: https://github.com/python/cpython/pull/27022
___
Python tracker
<https://bugs.python.org/issue44
Pablo Galindo Salgado added the comment:
New changeset fe847a62852c3baaec6c97a5e2e7b2e66732bdb8 by Pablo Galindo in
branch '3.9':
Revert "bpo-44562: Remove invalid PyObject_GC_Del from error path of
types.GenericAlias … (GH-27016) (GH-27018)" (GH-27022)
https://githu
Pablo Galindo Salgado added the comment:
New changeset 5644c7b3ffd49bed58dc095be6e6148e0bb4431e by Ammar Askar in branch
'main':
bpo-43950: Print columns in tracebacks (PEP 657) (GH-26958)
https://github.com/python/cpython/commit/5644c7b3ffd49bed58dc095be6e614
Pablo Galindo Salgado added the comment:
New changeset b324c4c5f763c5116a97db8591e6dcb94456570a by Pablo Galindo in
branch 'main':
bpo-44562: Use PyType_GenericAlloc in Py_GenericAlias (GH-27021)
https://github.com/python/cpython/commit/b324c4c5f763c5116a97db8591e6dc
Pablo Galindo Salgado added the comment:
New changeset 51a29c42f10bd9368db9a21f2f63319be2e30b95 by Ken Jin in branch
'3.9':
[3.9] bpo-44562: Remove invalid PyObject_GC_Del from error path of
types.GenericAlias … (GH-27016) (GH-27028)
https://github.com/python/cpyt
Change by Pablo Galindo Salgado :
--
resolution: -> fixed
stage: patch review -> resolved
status: open -> closed
___
Python tracker
<https://bugs.python.or
Pablo Galindo Salgado added the comment:
New changeset f64de53ff01e734d48d1d42195443d7d1646f220 by Serhiy Storchaka in
branch 'main':
bpo-44563: Fix error handling in tee.fromiterable() (GH-27020)
https://github.com/python/cpython/commit/f64de53ff01e734d48d1d42195443d
Pablo Galindo Salgado added the comment:
New changeset 324b93295fd81133d2dd597c3e3a0333f6c9d95b by Miss Islington (bot)
in branch '3.9':
bpo-44563: Fix error handling in tee.fromiterable() (GH-27020) (GH-27042)
https://github.com/python/cpython/commit/324b93295fd81133d2dd597c3e3a03
Pablo Galindo Salgado added the comment:
New changeset 645e527298b1f24625783338076330037d860162 by Miss Islington (bot)
in branch '3.10':
bpo-44563: Fix error handling in tee.fromiterable() (GH-27020) (GH-27041)
https://github.com/python/cpyt
Change by Pablo Galindo Salgado :
--
resolution: -> fixed
stage: patch review -> resolved
status: open -> closed
___
Python tracker
<https://bugs.python.or
Pablo Galindo Salgado added the comment:
Here is my previous attempt at this, for reference:
https://github.com/python/cpython/pull/9853
--
nosy: +pablogsal
___
Python tracker
<https://bugs.python.org/issue26
Pablo Galindo Salgado added the comment:
New changeset 2f180ce2cb6e6a7e3c517495e0f4873d6aaf5f2f by Gabriele N. Tornetta
in branch 'main':
bpo-44530: Add co_qualname field to PyCodeObject (GH-26941)
https://github.com/python/cpython/commit/2f180ce2cb6e6a7e3c517495e0f487
Change by Pablo Galindo Salgado :
--
resolution: -> fixed
stage: patch review -> resolved
status: open -> closed
___
Python tracker
<https://bugs.python.or
Change by Pablo Galindo Salgado :
--
pull_requests: +25608
pull_request: https://github.com/python/cpython/pull/27052
___
Python tracker
<https://bugs.python.org/issue44
Pablo Galindo Salgado added the comment:
New changeset 8363c53369a582ff9ae4e797a80cdce12624a278 by Pablo Galindo in
branch 'main':
bpo-44530: Document the new CodeObject.co_qualname attribute (GH-27052)
https://github.com/python/cpython/commit/8363c53369a582ff9ae4e797a80cdc
Change by Pablo Galindo Salgado :
--
nosy: +pablogsal
priority: normal -> release blocker
___
Python tracker
<https://bugs.python.org/issue44570>
___
___
Py
Pablo Galindo Salgado added the comment:
Mark, please take a look as beta4 is this week
--
___
Python tracker
<https://bugs.python.org/issue44570>
___
___
Pytho
Pablo Galindo Salgado added the comment:
Mark, take a look as soon as possible as beta4 is this week
--
nosy: +pablogsal
priority: normal -> release blocker
___
Python tracker
<https://bugs.python.org/issu
Pablo Galindo Salgado added the comment:
> I'm inclined to leave it as is
I am fine with that, if you think this is not a bug, close the issue and remove
the release blocker :)
--
___
Python tracker
<https://bugs.python.org
Pablo Galindo Salgado added the comment:
New changeset 4823d9a51281ebbc8e8d82a0dd3edc7d13ea8ac7 by Ammar Askar in branch
'main':
bpo-43950: Add option to opt-out of PEP-657 (GH-27023)
https://github.com/python/cpython/commit/4823d9a51281ebbc8e8d82a0dd3edc
Pablo Galindo Salgado added the comment:
Skip: I am still unable to reproduce in my machine unfortunately. Could you
maybe bisect the failures if you can reliably reproduce the problem so we can
at least narrow it down to one commit
Pablo Galindo Salgado added the comment:
Beta 4 is in a few days. Can someone confirm of this is fixed or if it still
needs a patch?
--
___
Python tracker
<https://bugs.python.org/issue44
Pablo Galindo Salgado added the comment:
Gentle ping as beta 4 is in 2 days
--
___
Python tracker
<https://bugs.python.org/issue44570>
___
___
Python-bugs-list m
Pablo Galindo Salgado added the comment:
Ned,
I am reviewing today PR 27068 and PR 27067 but it would be a great help if you
can confirm that **both** work for your cases and don't break anything else
--
___
Python tracker
&
Pablo Galindo Salgado added the comment:
New changeset 91a8f8c16ca9a7e2466a8241d9b41769ef97d094 by Filipe Laíns in
branch 'main':
bpo-6: support lineno being None in traceback.FrameSummary (GH-26781)
https://github.com/python/cpython/commit/91a8f8c16ca9a7e2466a8241d9b417
Change by Pablo Galindo Salgado :
--
pull_requests: +25623
pull_request: https://github.com/python/cpython/pull/27072
___
Python tracker
<https://bugs.python.org/issue44
Pablo Galindo Salgado added the comment:
> > python example.py
> s_push: parser stack overflow
> MemoryError
That error can only happen with the old parser, so you must be using Python3.8
or 3.9 with the old parser. Can
Pablo Galindo Salgado added the comment:
As a piece of extra information, this limit has been there for a while:
https://github.com/python/cpython/blob/91a8f8c16ca9a7e2466a8241d9b41769ef97d094/Parser/tokenizer.h#L14
the problem is that the old parser died before reaching it in many
Pablo Galindo Salgado added the comment:
Regarding what to do, what I would love to optimize is that the message is
clear. One of the challenges people may have with too specific messages is that
they may not know what "a compiler" or "a parser" means (the first may be
1201 - 1300 of 4563 matches
Mail list logo