WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

Re: [Xen-devel] [PATCH] libxen-3.0 (libxc rewrite)

To: Jacob Gorm Hansen <jacobg@xxxxxxx>
Subject: Re: [Xen-devel] [PATCH] libxen-3.0 (libxc rewrite)
From: Anthony Liguori <aliguori@xxxxxxxxxx>
Date: Mon, 21 Mar 2005 22:24:06 -0600
Cc: xen-devel <xen-devel@xxxxxxxxxxxxxxxxxxxxx>
Delivery-date: Tue, 22 Mar 2005 04:26:29 +0000
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <423F9216.6040806@xxxxxxx>
List-archive: <http://sourceforge.net/mailarchive/forum.php?forum=xen-devel>
List-help: <mailto:xen-devel-request@lists.sourceforge.net?subject=help>
List-id: List for Xen developers <xen-devel.lists.sourceforge.net>
List-post: <mailto:xen-devel@lists.sourceforge.net>
List-subscribe: <https://lists.sourceforge.net/lists/listinfo/xen-devel>, <mailto:xen-devel-request@lists.sourceforge.net?subject=subscribe>
List-unsubscribe: <https://lists.sourceforge.net/lists/listinfo/xen-devel>, <mailto:xen-devel-request@lists.sourceforge.net?subject=unsubscribe>
Organization: IBM
References: <423F3BB5.3020600@xxxxxxxxxx> <423F9216.6040806@xxxxxxx>
Sender: xen-devel-admin@xxxxxxxxxxxxxxxxxxxxx
User-agent: Mozilla Thunderbird 1.0 (X11/20041206)
Jacob Gorm Hansen wrote:

o Rename libxc => libxen


Is there any good reason for this? Will this include renaming all the xc_* symbols as well? This will break a lot of code in a lot of places, so I think the motivation needs to be more than just feel-good value.

The API is completely different. This interface is a thin wrapper around the hypercalls. All the code needs to be rewritten anyway. I'm a big believer that things should be self-documenting. xc seems like a bad prefix because it's pretty much meaningless (I guess it's supposed to be xen-control or something).

o Use pkg-config to control versioning and parallel installs


Don't know what that is or why I need it, but I suppose that means yet another dependency added. I am against adding dependencies. Used to be I could just untar xen and type make, now I need to install most of f*cking Gnome, that horrible Twisted-library and I don't know what, I think we are headed in the wrong direction with all this. This is a kernel-level project, not Freshmeat Greatest.

You may be aware that many libraries distribution custom -config scripts. pkg-config is a unified interface for -config scripts. If your system doesn't have pkg-config, no harm is done. It's not checked for in configure because it's not required to build. If there really is a strong desire to have a -config script instead of using pkg-config, that's fine. That seems a bit odd though.

Using pkg-config just means that you put a file in a known location (${prefix}/lib/pkgconfig) that describes your libraries CFLAGS and LDFLAGS. Otherwise, you have to install your own -config script in ${prefix}/bin.

Some sort of -config mechanism is necessary for libraries. Otherwise, a developer has no chance of being able to link against your software unless you always install in /usr/include and /usr/lib (which is not a very good thing to require).

I feel your pain, I agree with you completely :-) If you don't believe me, take a busy box chroot and ./configure libxen. Everything will work just fine :-)

o Use doxygen to autogenerate HTML documentation


Will this be optional, or part of the standard build process? Will the comments still be human-readable? If find the code and comments in libxc fairly easy to read and understand inline, isn't doxygen overkill for this small amount of code? Will I be able to build xen and libxc without installing doxygen on my system?

Yes, yes, no, yes. If you don't have doxygen, it's not used. The comments are as human-readable as they could possibly be. libxc currently has almost no interface level comments. Documentation of all public interfaces is a requirement for EAL certification and doing it now with doxygen is going to save a lot of headache in the future when someone has to do this.

Not to mention the fact that trying to write a robust management tool without interface-level documentation is painful. It basically requires sifting through the Xen code to find which errors can be returned in what circumstances.

We basically have three options:

1) Use a standard format for documenting APIs and use a tool to extract that documentation
2) Maintain a separate document documenting APIs
3) Sparsely document header files

1 & 2 seem to be the only reasonable things to do, and 1 is going to be a lot easier to deal with in the long run.

o Use pyrex to autogenerate python bindings

If it reduces the code size I guess it makes sense, hopefully I will still be able to compile the raw library without compiling the bindings, and without having pyrex installed? Please also consider that sometimes I and others

Yes. If you don't have pyrex or python the bindings won't be built. Moreover, pyrex generates C code and the build process is completely python free so the generated C files could be included as part of the source tarballs (much like configure is autogenerated and yet still usually included in source tarballs).

need to build (not run, obviously) this stuff on boxes where we do not have root-access, and the more stuff that needs to be installed, the less likely this is to work. This is not a contrived example, when I visited Cambridge (yes, the home of Xen) last year, I was doing Xen-development from a regular user account, without having root-access.

Yes, that's one of the reasons to use autoconf. It lets you specify non-standard locations for header files so you can do just what you describe.

Take a look at this library, I think you'll find that it provides more support for the things you're concerned about than libxc currently does.

Regards,
Anthony Liguori


-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxxx
https://lists.sourceforge.net/lists/listinfo/xen-devel