PageSourceSearch

https://hpyproject.org/blog/

html hpyproject.org collected 2026-10-02 05:32:53 UTC 22,524 bytes, 434 lines download raw bytes

1<!DOCTYPE html>
2<html prefix="
3        og: http://ogp.me/ns# article: http://ogp.me/ns/article#
4    " vocab="http://ogp.me/ns" lang="en">
5<head>
6<meta charset="utf-8">
7<meta name="description" content="A better C API for Python">
8<meta name="viewport" content="width=device-width, initial-scale=1">
9<title>HPy</title>
10<link href="../assets/css/rst_base.css" rel="stylesheet" type="text/css">
11<link href="../assets/css/nikola_rst.css" rel="stylesheet" type="text/css">
12<link href="../assets/css/code.css" rel="stylesheet" type="text/css">
13<link href="../assets/css/theme.css" rel="stylesheet" type="text/css">
14<link href="../assets/css/styles.css" rel="stylesheet" type="text/css">
15<meta name="theme-color" content="#5670d4">
16<meta name="generator" content="Nikola (getnikola.com)">
17<link rel="alternate" type="application/rss+xml" title="RSS" hreflang="en" href="../rss.xml">
18<link rel="canonical" href="https://hpyproject.org/blog/">
19<link rel="icon" href="../favicon2.ico" sizes="16x16">
20<link rel="icon" href="../favicon32x32.ico" sizes="32x32">
21<link rel="next" href="index-1.html" type="text/html">
22<!--[if lt IE 9]>
22<script src="../assets/js/html5shiv-printshiv.min.js"></script>
22<![endif]--><link href="https://fonts.googleapis.com/css?family=Roboto" rel="stylesheet">
23<link rel="stylesheet" type="text/css" href="../assets/css/tipuesearch.css">
24</head>
25<body>
26    <a href="#content" class="sr-only sr-only-focusable">Skip to main content</a>
27        <header id="header"><!-- Adapted from https://www.taniarascia.com/responsive-dropdown-navigation-bar --><section class="navigation"><div class="nav-container">
28            <div class="brand">
29                <a href="../index.html">
30                    <image id="toplogo" src="../images/hpy-logo.svg" width="75px;" alt="HPy/"></image></a>
31            </div>
32            <div class="nav-container-1">
33                    <div class="searchform" role="search">
34                        
35<form class="navbar-form navbar-left" action="../search/index.html" role="search">
36    <div class="form-group">
37        <input type="text" class="form-control" id="tipue_search_input" name="q" placeholder="Search…" autocomplete="off">
38</div>
39</form>
40
41                    </div>
42                <nav><ul class="nav-list">
43<li> <a href="https://hpy.readthedocs.io/">Dev Docs</a> </li>  
44            <li> 
45                <a href="#!">Blog</a>
46                <ul class="nav-dropdown">
47<li> <a href="../blog">Index</a> </li>  
48                    <li> <a href="../categories">Tags</a> </li>  
49                    <li> <a href="../archive.html">Archive by year</a> </li>  
50                    <li> <a href="../rss.xml">RSS feed</a> </li>  
51                </ul>
52</li>
53
54                    </ul></nav><div class="nav-mobile">
55                    <a id="nav-toggle" href="#!"> <span></span></a>
56                </div>
57            </div>
58        </div>
59    </section></header><div id="container">
60         <main id="content"><div class="post">
61<div class="postindex">
62    <article class="h-entry post-text" itemscope="itemscope" itemtype="http://schema.org/Article"><header><h1 class="p-name entry-title"><a href="posts/2023/10/hpy-0.9.0-fourth-public-release/" class="u-url">hpy 0.9.0: Fourth public release</a></h1>
63        <div class="metadata">
64            <p class="byline author vcard"><span class="byline-name fn" itemprop="author">
65                <a href="../authors/fangerer/">fangerer</a>
66            </span></p>
67            <p class="dateline">
68            <a href="posts/2023/10/hpy-0.9.0-fourth-public-release/" rel="bookmark">
69            <time class="published dt-published" datetime="2023-10-12T19:00:00Z" itemprop="datePublished" title="2023-10-12 19:00">2023-10-12 19:00</time></a>
70            </p>
71            <p class="commentline">  No comments
72</p>
73        </div>
74    </header><div class="p-summary entry-summary">
75    <div>
76<p>I'm excited to announce that HPy 0.9 was recently released!
77The fourth official HPy release comes with many new features
78and was again made available on PyPI.</p>
79<p>This is the first release that also provides binary wheels, so installation is
80now fast and smooth as you expect it.</p>
81<p>The major highlights of the release are support for subclassing of built-in
82types, metaclasses, the trace mode, multi-phase module initialization, and the
83hybrid ABI. Please checkout the full release notes here on GitHub:
84https://github.com/hpyproject/hpy/releases/tag/0.9.0</p>
85<p>Also, we invested a lot of effort to improve <a href="https://docs.hpyproject.org/en/0.9.0/overview.html">official
86documentation</a>.</p>
87<p>Great news too is that this release was used to make a first
88(partially-migrated) port of NumPy, we call it
89<a href="https://github.com/hpyproject/numpy-hpy">NumPy/HPy</a>, run some examples.</p>
90<p class="more"><a href="posts/2023/10/hpy-0.9.0-fourth-public-release/">Read more…</a></p>
91</div>
92    </div>
93    </article><div class="no-comments">No comments.</div>
94
95    <article class="h-entry post-text" itemscope="itemscope" itemtype="http://schema.org/Article"><header><h1 class="p-name entry-title"><a href="posts/2023/10/hpy-meetup-2023/" class="u-url">HPy meetup and CPython core dev sprint in Brno (Oct 7-10, 2023)</a></h1>
96        <div class="metadata">
97            <p class="byline author vcard"><span class="byline-name fn" itemprop="author">
98                <a href="../authors/fangerer/">fangerer</a>
99            </span></p>
100            <p class="dateline">
101            <a href="posts/2023/10/hpy-meetup-2023/" rel="bookmark">
102            <time class="published dt-published" datetime="2023-10-10T10:00:00Z" itemprop="datePublished" title="2023-10-10 10:00">2023-10-10 10:00</time></a>
103            </p>
104            <p class="commentline">  No comments
105</p>
106        </div>
107    </header><div class="p-summary entry-summary">
108    <div>
109<p>We just ended our rather informal HPy meetup in Brno (Czech Republic) which
110started on Saturday (October 7th) and lasted until Tuesday (October 10th).</p>
111<p>The main topics of the HPy meetup were:</p>
112<ul>
113<li>The CPython Core Dev Sprint</li>
114<li>Cython/HPy</li>
115</ul>
116<p class="more"><a href="posts/2023/10/hpy-meetup-2023/">Read more…</a></p>
117</div>
118    </div>
119    </article><div class="no-comments">No comments.</div>
120
121    <article class="h-entry post-text" itemscope="itemscope" itemtype="http://schema.org/Article"><header><h1 class="p-name entry-title"><a href="posts/2022/09/hpy_sprint_2022_report/" class="u-url">
121HPy Sprint Status Update and Feedback Session</a></h1>
122        <div class="metadata">
123            <p class="byline author vcard"><span class="byline-name fn" itemprop="author">
124                <a href="../authors/fangerer/">fangerer</a>
125            </span></p>
126            <p class="dateline">
127            <a href="posts/2022/09/hpy_sprint_2022_report/" rel="bookmark">
128            <time class="published dt-published" datetime="2022-09-26T10:00:00Z" itemprop="datePublished" title="2022-09-26 10:00">2022-09-26 10:00</time></a>
129            </p>
130            <p class="commentline">  No comments
131</p>
132        </div>
133    </header><div class="p-summary entry-summary">
134    <div>
135<p>As we announced in
136<a href="https://hpyproject.org/blog/posts/2022/07/dusseldorf-sprint-2022/">this blog post</a>,
137we are currently having our joint PyPy/HPy/GraalPy sprint in Düsseldorf.</p>
138<p>On Thursday (September 22nd, 2022), we did the HPy sprint report. Most notably,
139we also had several CPython core developers in the call.</p>
140<p>The sprint report was streamed on
141<a href="https://www.twitch.tv/pypyproject">Twitch</a> and the recording is available here:</p>
142<iframe width="560" height="315" src="https://www.youtube.com/embed/kl5w8uR6hGA" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
143
144<p class="more"><a href="posts/2022/09/hpy_sprint_2022_report/">Read more…</a></p>
145</div>
146    </div>
147    </article><div class="no-comments">No comments.</div>
148
149    <article class="h-entry post-text" itemscope="itemscope" itemtype="http://schema.org/Article"><header><h1 class="p-name entry-title"><a href="posts/2022/09/hpy_on_graal_and_mpl/" class="u-url">HPy on GraalPy and Matplotlib/HPy</a></h1>
150        <div class="metadata">
151            <p class="byline author vcard"><span class="byline-name fn" itemprop="author">
152                <a href="../authors/fangerer/">fangerer</a>
153            </span></p>
154            <p class="dateline">
155            <a href="posts/2022/09/hpy_on_graal_and_mpl/" rel="bookmark">
156            <time class="published dt-published" datetime="2022-09-08T15:30:00Z" itemprop="datePublished" title="2022-09-08 15:30">2022-09-08 15:30</time></a>
157            </p>
158            <p class="commentline">  No comments
159</p>
160        </div>
161    </header><div class="p-summary entry-summary">
162    <div>
163<p>Recently, the
164<a href="https://www.graalvm.org/python/">GraalVM Python</a> team started a series of blog
165posts on <a href="https://medium.com/graalvm">Medium</a> about
166<a href="https://medium.com/graalvm/hpy-better-python-c-api-in-practice-79328246e2f8">HPy on GraalPy</a>
167and about the
168<a href="https://medium.com/graalvm/porting-matplotlib-from-c-api-to-hpy-aa32faa1f0b5">migration of Matplotlib to HPy</a>
169. The second blog post is in particular interesting since it not only describes
170the migration process but also shows performance numbers. The source code is
171also publicly available.</p>
172<p class="more"><a href="posts/2022/09/hpy_on_graal_and_mpl/">Read more…</a></p>
173</div>
174    </div>
175    </article><div class="no-comments">No comments.</div>
176
177    <article class="h-entry post-text" itemscope="itemscope" itemtype="http://schema.org/Article"><header><h1 class="p-name entry-title"><a href="posts/2022/07/dusseldorf-sprint-2022/" class="u-url">Dusseldorf PyPy/HPy/other sprint Sept 19-23, 2022</a></h1>
178        <div class="metadata">
179            <p class="byline author vcard"><span class="byline-name fn" itemprop="author">
180                <a href="../authors/fangerer/">fangerer</a>
181            </span></p>
182            <p class="dateline">
183            <a href="posts/2022/07/dusseldorf-sprint-2022/" rel="bookmark">
184            <time class="published dt-published" datetime="2022-07-29T10:00:00Z" itemprop="datePublished" title="2022-07-29 10:00">2022-07-29 10:00</time></a>
185            </p>
186            <p class="commentline">  No comments
187</p>
188        </div>
189    </header><div class="p-summary entry-summary">
190    <div>
191<p>I'm happy to announce that we will finally have another PyPy/HPy/other sprint
192in Düsseldorf, Germany from September 19-23, 2022.</p>
193<p>The sprint will be located at Heinrich Heine University Düsseldorf. Many
194thanks to Carl Friedrich for organizing this.</p>
195<p>We will again follow an open format, i.e., everyone that is interesting in HPy,
196PyPy, or some related topic is welcome to join the sprint.</p>
197<p>See also the
198<a href="https://www.pypy.org/posts/2022/07/ddorf-sprint-sep-2022.html">announcement on the PyPy blog</a>.</p>
199<p class="more"><a href="posts/2022/07/dusseldorf-sprint-2022/">Read more…</a></p>
200</div>
201    </div>
202    </article><div class="no-comments">No comments.</div>
203
204    <article class="h-entry post-text" itemscope="itemscope" itemtype="http://schema.org/Article"><header><h1 class="p-name entry-title"><a href="posts/2022/06/hpy-0.0.4-third-public-release/" class="u-url">hpy 0.0.4: Third public release</a></h1>
205        <div class="metadata">
206            <p class="byline author vcard"><span class="byline-name fn" itemprop="author">
207                <a href="../authors/fangerer/">fangerer</a>
208            </span></p>
209            <p class="dateline">
210            <a href="posts/2022/06/hpy-0.0.4-third-public-release/" rel="bookmark">
211            <time class="published dt-published" datetime="2022-06-02T09:15:00Z" itemprop="datePublished" title="2022-06-02 09:15">2022-06-02 09:15</time></a>
212            </p>
213            <p class="commentline">  No comments
214</p>
215        </div>
216    </header><div class="p-summary entry-summary">
217    <div>
218<p>HPy 0.0.4 is out! The third official HPy release comes with many new features
219and was again made available on PyPI.</p>
220<p>Major highlights of the release are a bunch of new API functions (e.g.
221<code>HPyErr_ExceptionMatches</code>, <code>HPyErr_WarnEx</code>, <code>HPy_Contains</code>, and more),
222Python 3.10 support, better support for native fields (<code>HPyField</code>) and global
223variables (<code>HPyGlobal</code>), new debug mode features (detect invalid raw data
224pointer usage, detect invalid closing of argument handles, detect return of
225invalid handles).</p>
226<p>Great news too is that we are now able to provide two more non-trivial projects
227that have been (partially) migrated to HPy. This is,
228<a href="https://github.com/hpyproject/kiwi-hpy/">Kiwisolver</a>
229and <a href="https://github.com/hpyproject/matplotlib-hpy/">Matplotlib</a>.</p>
230<p class="more"><a href="posts/2022/06/hpy-0.0.4-third-public-release/">Read more…</a></p>
231</div>
232    </div>
233    </article><div class="no-comments">No comments.</div>
234
235    <article class="h-entry post-text" itemscope="itemscope" itemtype="http://schema.org/Article"><header><h1 class="p-name entry-title"><a href="posts/2021/10/hpy-0.0.3-second-public-release/" class="u-url">hpy 0.0.3: Second public release</a></h1>
236        <div class="metadata">
237            <p class="byline author vcard"><span class="byline-name fn" itemprop="author">
238                <a href="../authors/fangerer/">fangerer</a>
239            </span></p>
240            <p class="dateline">
241            <a href="posts/2021/10/hpy-0.0.3-second-public-release/" rel="bookmark">
242            <time class="published dt-published" datetime="2021-10-22T15:00:00Z" itemprop="datePublished" title="2021-10-22 15:00">2021-10-22 15:00</time></a>
243            </p>
244            <p class="commentline">  No comments
245</p>
246        </div>
247    </header><div class="p-summary entry-summary">
248    <div>
249<p>HPy 0.0.3 is out! This is already HPy's second officially released version and
250was again made available on PyPI.</p>
251<p>The major highlights of this release are new API functions, new debug mode
252features, and Windows support.</p>
253<p class="more"><a href="posts/2021/10/hpy-0.0.3-second-public-release/">Read more…</a></p>
254</div>
255    </div>
256    </article><div class="no-comments">No comments.</div>
257
258    <article class="h-entry post-text" itemscope="itemscope" itemtype="http://schema.org/Article"><header><h1 class="p-name entry-title"><a href="posts/2021/07/hpy-0.0.2-first-public-release/" class="u-url">hpy 0.0.2: First public release</a></h1>
259        <div class="metadata">
260            <p class="byline author vcard"><span class="byline-name fn" itemprop="author">
261                <a href="../authors/antocuni/">antocuni</a>
262            </span></p>
263            <p class="dateline">
264            <a href="posts/2021/07/hpy-0.0.2-first-public-release/" rel="bookmark">
265            <time class="published dt-published" datetime="2021-07-15T15:00:00Z" itemprop="datePublished" title="2021-07-15 15:00">2021-07-15 15:00</time></a>
266            </p>
267            <p class="commentline">  No comments
268</p>
269        </div>
270    </header><div class="p-summary entry-summary">
271    <div>
272<p>HPy 0.0.2 is out! This is the first version which is officially released and
273made available on PyPI.</p>
274<p>The major highlight of this release is that it is supported by three different
275Python implementations: CPython, PyPy and GraalPython.</p>
276<p class="more"><a href="posts/2021/07/hpy-0.0.2-first-public-release/">Read more…</a></p>
277</div>
278    </div>
279    </article><div class="no-comments">No comments.</div>
280
281    <article class="h-entry post-text" itemscope="itemscope" itemtype="http://schema.org/Article"><header><h1 class="p-name entry-title"><a href="posts/2021/05/hpy-irc-moves-to-libera-chat/" class="u-url">#hpy IRC moves to Libera.Chat</a></h1>
282        <div class="metadata">
283            <p class="byline author vcard"><span class="byline-name fn" itemprop="author">
284                <a href="../authors/antocuni/">antocuni</a>
285            </span></p>
286            <p class="dateline">
287            <a href="posts/2021/05/hpy-irc-moves-to-libera-chat/" rel="bookmark">
288            <time class="published dt-published" datetime="2021-05-29T10:00:00Z" itemprop="datePublished" title="2021-05-29 10:00">2021-05-29 10:00</time></a>
289            </p>
290            <p class="commentline">  No comments
291</p>
292        </div>
293    </header><div class="p-summary entry-summary">
294    <div>
295<p>Following the example of many other FOSS projects, the HPy team has
296decided to move its official <code>#hpy</code> IRC channel from Freenode to
297<a href="https://libera.chat/">Libera.Chat</a>: <a href="irc://irc.libera.chat/hpy">irc.libera.chat/hpy</a></p>
298<p>The core devs will no longer be present on the Freenode channel, so we recommend to
299join the new channel as soon as possible.</p>
300<p>wikimedia.org has a
301<a href="https://meta.wikimedia.org/wiki/IRC/Migrating_to_Libera_Chat">nice guide</a> on
302how to setup your client to migrate from Freenode to Libera.Chat.</p>
303<p class="more"><a href="posts/2021/05/hpy-irc-moves-to-libera-chat/">Read more…</a></p>
304</div>
305    </div>
306    </article><div class="no-comments">No comments.</div>
307
308    <article class="h-entry post-text" itemscope="itemscope" itemtype="http://schema.org/Article"><header><h1 class="p-name entry-title"><a href="posts/2021/05/hpy-python-language-summit/" class="u-url">
308HPy @ Python Language Summit</a></h1>
309        <div class="metadata">
310            <p class="byline author vcard"><span class="byline-name fn" itemprop="author">
311                <a href="../authors/antocuni/">antocuni</a>
312            </span></p>
313            <p class="dateline">
314            <a href="posts/2021/05/hpy-python-language-summit/" rel="bookmark">
315            <time class="published dt-published" datetime="2021-05-12T10:00:00Z" itemprop="datePublished" title="2021-05-12 10:00">2021-05-12 10:00</time></a>
316            </p>
317            <p class="commentline">  No comments
318</p>
319        </div>
320    </header><div class="p-summary entry-summary">
321    <div>
322<p>Yesterday I had the privilege to give a talk about HPy
323(<a href="../talks/2021/05/hpy-present-and-future.pdf">sildes</a>) at the
324<a href="https://us.pycon.org/2021/summits/language/">Python Language Summit 2021</a>.</p>
325<p>The organizers of the summit will soon publish a full report about the event
326(edit: now available
327<a href="https://pyfound.blogspot.com/2021/05/the-2021-python-language-summit.html">here</a>),
328but <a href="https://pyfound.blogspot.com/2021/05/the-2021-python-language-summit-hpy.html">for the HPy-specific
329part</a>,
330we got generally good feedback. Someone has a few concerns that if CPython is
331to change the API, HPy might not be going far enough. Others said that Python
332shouldn't wait for the "perfect" API if HPy can be the "good" one that helps it
333evolve.</p>
334<p>Everyone was open to have HPy-compatible wheels on PyPI, once the HPy
335Universal ABI stays relatively stable. Many people suggested that we should
336really write a PEP to propose HPy as a "semi-official" API for Python.</p>
337<p class="more"><a href="posts/2021/05/hpy-python-language-summit/">Read more…</a></p>
338</div>
339    </div>
340    </article><div class="no-comments">No comments.</div>
341
342</div>
343</div>
344<div class="sidebar">
345<div>
346  <h2>
347    The HPy blogposts
348  </h2>
349  <div>
350    Create a guest post via a PR to the <a href="https://github.com/hpyproject/hpyproject.github.io/">source repo</a>
351  </div>
352</div>
353    <div id="global-recent-posts">
354    <h2>
355      Recent Posts
356    </h2>
357    <ul class="post-list">
358      <li>
359        <a href="/blog/posts/2023/10/hpy-0.9.0-fourth-public-release/" class="listtitle">hpy 0.9.0: Fourth public release</a>
360      </li>
361      <li>
362        <a href="/blog/posts/2023/10/hpy-meetup-2023/" class="listtitle">HPy meetup and CPython core dev sprint in Brno (Oct 7-10, 2023)</a>
363      </li>
364      <li>
365        <a href="/blog/posts/2022/09/hpy_sprint_2022_report/" class="listtitle">HPy Sprint Status Update and Feedback Session</a>
366      </li>
367      <li>
368        <a href="/blog/posts/2022/09/hpy_on_graal_and_mpl/" class="listtitle">HPy on GraalPy and Matplotlib/HPy</a>
369      </li>
370      <li>
371        <a href="/blog/posts/2022/07/dusseldorf-sprint-2022/" class="listtitle">Dusseldorf PyPy/HPy/other sprint Sept 19-23, 2022</a>
372      </li>
373      <li>
374        <a href="/blog/posts/2022/06/hpy-0.0.4-third-public-release/" class="listtitle">hpy 0.0.4: Third public release</a>
375      </li>
376      <li>
377        <a href="/blog/posts/2021/10/hpy-0.0.3-second-public-release/" class="listtitle">hpy 0.0.3: Second public release</a>
378      </li>
379      <li>
380        <a href="/blog/posts/2021/07/hpy-0.0.2-first-public-release/" class="listtitle">hpy 0.0.2: First public release</a>
381      </li>
382      <li>
383        <a href="/blog/posts/2021/05/hpy-irc-moves-to-libera-chat/" class="listtitle">#hpy IRC moves to Libera.Chat</a>
384      </li>
385      <li>
386        <a href="/blog/posts/2021/05/hpy-python-language-summit/" class="listtitle">HPy @ Python Language Summit</a>
387      </li>
388    </ul>
389  </div>
390
391          <div id="global-archive-list">
392          <h2>
393            Archives
394          </h2>
395          <ul class="archive-level archive-level-1">
396            <li><a class="reference" href="/2021/">2021</a> (6)
397            </li>
398            <li><a class="reference" href="/2022/">2022</a> (4)
399            </li>
400            <li><a class="reference" href="/2023/">2023</a> (2)
401            </li>
402          </ul>
403        </div></div>
404</main>
405</div>
406<div style="clear: both; width: 75%; margin: 1em auto;">
407        <nav class="postindexpager"><ul class="pager">
408<li class="next">
409                <a href="index-1.html" rel="next">Older posts</a>
410            </li>
411        </ul></nav>
412</div>
413         
414                 <footer id="footer"><p>
415</p>
416<div class="myfooter">
417  <div>
418    <img src="../images/hpy-logo.svg" alt="PyPy Logo">
419</div>
420  <div class="logotext">
421     Contents © 2024 <a href="mailto:[email protected]">The HPy Team</a>
422    Powered by <a href="https://getnikola.com" rel="nofollow">Nikola</a> 
423  </div>
424  <div style="margin-left: auto">
425  <a href="../rss.xml">RSS feed</a>
426</div>
427
428            
429        
430
431    </div>
432            
432<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js" crossorigin="anonymous"></script>
432<script src="../assets/js/styles.js"></script>
432</footer>
433</body>
434</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.