public inbox for infinity@sourceware.org
 help / color / mirror / Atom feed
From: Gary Benson <gbenson@redhat.com>
To: infinity@sourceware.org
Subject: Fourth Infinity full-system preview now available
Date: Tue, 11 Jul 2017 13:36:00 -0000	[thread overview]
Message-ID: <20170711133631.GA25298@blade.nx> (raw)

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/

                 reply	other threads:[~2017-07-11 13:36 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20170711133631.GA25298@blade.nx \
    --to=gbenson@redhat.com \
    --cc=infinity@sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).