* Fourth Infinity full-system preview now available
@ 2017-07-11 13:36 Gary Benson
0 siblings, 0 replies; only message in thread
From: Gary Benson @ 2017-07-11 13:36 UTC (permalink / raw)
To: infinity
Hi all,
The fourth full-system preview release of Infinity is now available:
https://infinitynotes.org/wiki/Forth_Bridge
I'm working on making snapshots more regularly, so this release is a
little less formal than previously. The reason for Forth Bridge is
as a preview of the Python bindings for libi8x. These have two uses:
1) They allow me to drop the incomplete and mostly untested Python
interpreter in the I8X, the note tester that comes with I8C. The
tester's used during glibc builds to ensure the notes work, so
using libi8x to run the tests means the notes are tested using
the same code that's going to execute them in GDB et al. The
Python interpreter doesn't fully check everything that libi8x's
interpreter does, and neither presently have tests for malformed
notes.
2) They allow me to write (some of?) libi8x's tests in Python. My
initial target was the library API tests--if everything libi8x
does is exposed to Python, and the Python bindings have full test
coverage then I only have to write the Python bindings tests and
I get the API tests for libi8x for free. This is semi-enforced
by the binding generator: it only emits bindings for functions
that have testcases.
I'm writing the bindings in two layers, a low-level module (basically
a 1:1 mapping of the C API) and a high-level module which will wrap
calls to the low-level module in Python prettiness. My reasoning is
twofold:
1) The unit tests for the Python API can function as the unit tests
for the C API too... writing one set of unit tests saves time, and
writing tests in Python saves time.
2) I can do most of the shuffling to turn the C way of doing things
into a Python way of doing things in Python... which again saves
time.
Anyway, Forth Bridge contains enough of the low-level layer of the
Python bindings that the Python interpreter in I8X can be replaced.
I8C's testsuite passes with the libi8x interpreter, and the tests
in glibc work with I8X using the libi8x interpreter. You could try
it! The page linked above details how to:
* Build glibc with Infinity notes for thread debugging.
* Run applications using that glibc.
* Build a patched GDB and debug those applications using Infinity.
All this can be done as a normal user (root access is not required).
Please direct questions to infinity@sourceware.org.
Thanks!
Gary
--
https://infinitynotes.org/
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2017-07-11 13:36 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-07-11 13:36 Fourth Infinity full-system preview now available Gary Benson
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).