Rocksolid Light

Welcome to RetroBBS

mail  files  register  newsreader  groups  login

Message-ID:  

1.79 x 10^12 furlongs per fortnight -- it's not just a good idea, it's the law!


devel / comp.lang.python / Re: What's the public API alternative to _PyObject_GC_IS_TRACKED()?

SubjectAuthor
o Re: What's the public API alternative to _PyObject_GC_IS_TRACKED()?Marco Sulla

1
Re: What's the public API alternative to _PyObject_GC_IS_TRACKED()?

<mailman.49.1640722702.3079.python-list@python.org>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=20925&group=comp.lang.python#20925

  copy link   Newsgroups: comp.lang.python
Path: i2pn2.org!i2pn.org!news.swapon.de!fu-berlin.de!uni-berlin.de!not-for-mail
From: Marco.Sulla.Python@gmail.com (Marco Sulla)
Newsgroups: comp.lang.python
Subject: Re: What's the public API alternative to _PyObject_GC_IS_TRACKED()?
Date: Tue, 28 Dec 2021 21:17:43 +0100
Lines: 23
Message-ID: <mailman.49.1640722702.3079.python-list@python.org>
References: <CABbU2U89U=itsPwsU8+POREYMCf9F3U=_CciwVO0ynCAJ0aFcQ@mail.gmail.com>
<CC507B7F-0A6C-415A-952E-2C7CDC75C9EC@barrys-emacs.org>
<CABbU2U9JLyt=7Up81sry7HV+4OyyZ23hZ=i1fxpGk-Y+_zhNaA@mail.gmail.com>
<CAEfz+TwYhn71gEoZ5Xd0=0ni-YCnwjpjuqHokWJCr8CXeGbq4g@mail.gmail.com>
<CABbU2U8YEjjQgd029YkYeDFBNbz5da8E+Nfyr-q0GYgLf2WRuA@mail.gmail.com>
<CAEfz+TzcPkC6k8xB1NBmEN4+eGzmPONYeGR-W6u_qrKkBStPkw@mail.gmail.com>
<CABbU2U-W=7RX9HkhGE6C8_MNTUEsJvZ-XpVdj5feH-+zHHhQzg@mail.gmail.com>
Mime-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
X-Trace: news.uni-berlin.de PP2L99gQ/1lIc6NKwzJGKgcqtZrKUeTpkpom4eLBkfCA==
Return-Path: <elbarbun@gmail.com>
X-Original-To: python-list@python.org
Delivered-To: python-list@mail.python.org
Authentication-Results: mail.python.org; dkim=pass
reason="2048-bit key; unprotected key"
header.d=gmail.com header.i=@gmail.com header.b=DqSq07Gy;
dkim-adsp=pass; dkim-atps=neutral
X-Spam-Status: OK 0.007
X-Spam-Evidence: '*H*': 0.99; '*S*': 0.00; 'subject:API': 0.07;
'cc:addr:python-list': 0.09; 'received:209.85.219': 0.09; 'skip:_
20': 0.09; 'api.': 0.16; 'apis': 0.16; 'builtin': 0.16;
'cc:name:python list': 0.16; 'cpython': 0.16; 'dict': 0.16;
'from:name:marco sulla': 0.16; 'inada': 0.16; 'invoke': 0.16;
'naoki': 0.16; 'refactor': 0.16; 'solved': 0.16; 'subject:()?':
0.16; 'tightly': 0.16; 'wrote:': 0.16; 'problem': 0.16; 'python':
0.16; "can't": 0.17; 'uses': 0.19; 'tue,': 0.19;
'cc:addr:python.org': 0.20; 'skip:_ 10': 0.22; 'version': 0.23;
'code': 0.23; 'cc:2**1': 0.23; 'tried': 0.26; 'before.': 0.31;
'dec': 0.31; 'putting': 0.31; 'modified': 0.32; 'message-
id:@mail.gmail.com': 0.32; 'but': 0.32; "i'm": 0.33; "i'll": 0.33;
'same': 0.34; 'header:In-Reply-To:1': 0.34; 'received:google.com':
0.34; 'from:addr:gmail.com': 0.35; 'files': 0.36; 'special': 0.37;
'currently': 0.37; 'received:209.85': 0.37; 'received:209': 0.39;
'use': 0.39; 'subject:What': 0.40; 'want': 0.40; 'try': 0.40;
'including': 0.60; 'included': 0.61; "there's": 0.61; 'copy':
0.63; 'public': 0.63; 'your': 0.64; '2021': 0.71; 'performance':
0.71; 'private': 0.73; 'furthermore': 0.84; 'tracked': 0.91;
'optimization': 0.93
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112;
h=mime-version:references:in-reply-to:from:date:message-id:subject:to
:cc; bh=Kd4S5o89t4ZXN/MSCU+il3pVZJoFJRehSFt2j3DLpVA=;
b=DqSq07GyTnd1ZLVWW3fRW/TjEo5Jh0K94ZZUb1b8zByV4cDUcDXPTO3BIgSMMQ6B/5
truHmlSoPMBBUfdU+BCoA1KgUmLsfzutWCIPgEnXfy/GKv216jbISQOnyd3mWFgEYK7P
mT26gqBmJmQZ99G+pWG96XeETKGxGtTM7YjkhAtDfPpdpHYwJVFVrQTFcnPn1Tvpa3Cr
L9HIwgn1WRVWv+UtFBQY6uynA79VP1p/MIo83y8NuKpCzIhz4VcVwBSP0cW+DKT37b4H
ZOOBxht+FkNHyuBfrjGUw0ElVD+rqezFm/ZjrHXWtqZ7bXYJ93oiZWxPGirkMPkWwjkI
Zq4g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=1e100.net; s=20210112;
h=x-gm-message-state:mime-version:references:in-reply-to:from:date
:message-id:subject:to:cc;
bh=Kd4S5o89t4ZXN/MSCU+il3pVZJoFJRehSFt2j3DLpVA=;
b=X0yt07JMhRxgRtA0ZuuOqaUp1JbE3CHy0RkG9mHb4BQoOrb+peE7IndDleny2BKjmG
THtmjMlibHeF91Wp1nhnrDLiQQHVZ818jQTO4FOFWAiz7Q7alX8DbGWR3CZD0M60b/6y
MsqCOnHtZ1SdbwyesrO8d8BbuPH3tgF4qsF6VI8SePOgeSSTlrq2EJUrBmJShRJBbfeG
kgMhzZlJhAraVPRQ2W1QD9Ygeb0Pe4UXNhNPfOPxhgHeeUnJMCs90iMs4rOTFQzBKGwY
xKu0of1iX98Tw2Dg9Cy8x6zOQEa9oIxX3SfwAj8ESpoG44kbbf1j4AAK6KtvCVvbAM5U
h9Fg==
X-Gm-Message-State: AOAM53193Ztw3ijYzAwg60zK2vbZyktlE9tEhF9GcfIJcooaakX/5XJl
wzr7jj+sihP6Y7mcwfbXcNd09qIrPtrNbTkpyFX/1iEKyYE=
X-Google-Smtp-Source: ABdhPJwheH/N4+1z53hO0QycTkoMDnxt7GD7ct/eCRyWMQtiF9vDcxzNyc17IBNYzGOMwXQfOZ4/woRO2ovDQXpWcrY=
X-Received: by 2002:a25:7209:: with SMTP id n9mr28629582ybc.692.1640722699181;
Tue, 28 Dec 2021 12:18:19 -0800 (PST)
In-Reply-To: <CAEfz+TzcPkC6k8xB1NBmEN4+eGzmPONYeGR-W6u_qrKkBStPkw@mail.gmail.com>
X-BeenThere: python-list@python.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: General discussion list for the Python programming language
<python-list.python.org>
List-Unsubscribe: <https://mail.python.org/mailman/options/python-list>,
<mailto:python-list-request@python.org?subject=unsubscribe>
List-Archive: <https://mail.python.org/pipermail/python-list/>
List-Post: <mailto:python-list@python.org>
List-Help: <mailto:python-list-request@python.org?subject=help>
List-Subscribe: <https://mail.python.org/mailman/listinfo/python-list>,
<mailto:python-list-request@python.org?subject=subscribe>
X-Mailman-Original-Message-ID: <CABbU2U-W=7RX9HkhGE6C8_MNTUEsJvZ-XpVdj5feH-+zHHhQzg@mail.gmail.com>
X-Mailman-Original-References: <CABbU2U89U=itsPwsU8+POREYMCf9F3U=_CciwVO0ynCAJ0aFcQ@mail.gmail.com>
<CC507B7F-0A6C-415A-952E-2C7CDC75C9EC@barrys-emacs.org>
<CABbU2U9JLyt=7Up81sry7HV+4OyyZ23hZ=i1fxpGk-Y+_zhNaA@mail.gmail.com>
<CAEfz+TwYhn71gEoZ5Xd0=0ni-YCnwjpjuqHokWJCr8CXeGbq4g@mail.gmail.com>
<CABbU2U8YEjjQgd029YkYeDFBNbz5da8E+Nfyr-q0GYgLf2WRuA@mail.gmail.com>
<CAEfz+TzcPkC6k8xB1NBmEN4+eGzmPONYeGR-W6u_qrKkBStPkw@mail.gmail.com>
 by: Marco Sulla - Tue, 28 Dec 2021 20:17 UTC

On Tue, 28 Dec 2021 at 12:38, Inada Naoki <songofacandy@gmail.com> wrote:
> Your case is special.
> You want to create a frozendict which performance is same to builtin dict.
> Builtin dict has special optimization which tightly coupled with
> current CPython implementation.
> So you need to use private APIs for MAINTAIN_TRACKING.

I solved this problem with a hacky trick: I included a reduced and
slightly modified version of dictobject.c. Furthermore I copy / pasted
stringlib\eq.h and _Py_bit_length. I'm currently doing this in a
refactor branch.
(Yes, I know that including a .c is very bad... but I need to do this
to separate the code of dict from the code of frozendict. Putting all
in the same files mess my head)

> But PyObject_GC_Track() is a public API.

The problem is I can't invoke PyObject_GC_Track() on an already
tracked object. I tried it and Python segfaulted. That's why CPython
uses _PyObject_GC_IS_TRACKED() before.

I'll try to copy/paste it too... :D but I do not understand why
there's not a public version of it.


devel / comp.lang.python / Re: What's the public API alternative to _PyObject_GC_IS_TRACKED()?

1
server_pubkey.txt

rocksolid light 0.9.81
clearnet tor