24-28 August 2020
US/Pacific timezone

Tutorial: GNU poke, what is new in 2020

24 Aug 2020, 09:30
GNU Tools track/Virtual-Room (LPC 2020)

GNU Tools track/Virtual-Room

LPC 2020

GNU Tools Track GNU Tools Track


Jose E. Marchesi (GNU Project, Oracle Inc.)


It's been almost a year since the nascent GNU poke [1] got first introduced to the public at the GNU Tools Cauldron 2019 in Montreal. We have been hacking a lot during these turbulence months and poke is maturing fast and approaching a first official release, scheduled for late summer.

In this talk we will first do a quick introduction to the program for the benefit of the folk still unfamiliar with it. Then we will show (and demonstrate) the many new features introduced during this last year: full support for union types, styled output, struct constructors, methods and pretty-printers, integral structs, the machine-interface, support for Poke scripts, and many more. Finally, we will be tackling some practical matters (what we call "Applied Pokology"[2]) useful for toolchain developers, such as how to write binary utilities in Poke, how to best implement typical C data structures in Poke type descriptions, and our plans to
integrate poke with other toolchain components such as GDB.

About GNU poke

GNU poke is an interactive, extensible editor for binary data. Not limited to editing basic entities such as bits and bytes, it provides a full-fledged procedural, interactive programming language designed to describe data structures and to operate on them.

[1] http://www.jemarch.net/poke

[2] http://www.jemarch.net/pokology

I agree to abide by the anti-harassment policy I agree

Primary author

Jose E. Marchesi (GNU Project, Oracle Inc.)

Presentation Materials