This is the mail archive of the infinity@sourceware.org mailing list for the Infinity project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Fourth Infinity full-system preview now available


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/


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]