Hi, all I am setting the new time out for this case to be Feb 20th, 2008, in order to get it in to Indiana (hopefully).
Thanks --Irene On Wed, 2008-02-13 at 11:54 +0000, Ghee Teo wrote: > Hi, > > Attached is the updated version of ARC Fast Track materials. > > The following issues raised and discussed which are now summarized as > follow: > > (1) Not to deliver of g++ compiled libraries > This is now considered out of scope for this ARC fast-track due to the many > issues raised over the brief period. If there is a need in the future to > provide > g++ compiled libraries this will be addressed in a subsequent case. > > (2) Libraries and .pc files are classified as Uncommitted instead of > Volatile > see updated interface exported table. > .pc is the recommended way to access include files and also libraries by > applications > in general for JDS. > > (3) Tools for generation of wrapper code are classified as Consolidation > Private > See updated interface table and rationale for so doing. > > I believe any other points raised are either have been resolved during > the threads > or included here above. Should I have missed any other point, feel free > to raise. > > Thanks, > > -Ghee > plain text document attachment > (gtkmm-LSARC-2008-074-revised-13Feb2008.txt) > Copyright 2008 Sun Microsystems > > 1. Introduction > 1.1. Project/Component Working Name: sigcpp, glibmm, cairomm, and gtkmm > > 1.2. Name of Document Author/Supplier: Ghee Teo, Chris Wang, Elaine Xiong, > Simon Zheng > > 1.3. Date of This Document: 01/30/08 > > 1.5. Email Aliases: > 1.5.1. Responsible Manager: leo.binchy at sun.com > 1.5.2. Responsible Engineer:ghee.teo at sun.com, > chris.wang at sun.com, > elaine.xiong at sun.com, > simon.zheng at sun.com > > 2. Project Summary > 2.1. Project Description: > libsigc++ implements a typesafe callback system for use in widget > libraries, abstract interfaces, and general programming. It allows > users > to define signals and to connect those signals to any callback > function, > either global or a member function, regardless of whether it is static > or > virtual. It contains adaptor classes for connecting dissimilar callbacks > and has an ease of use unmatched by other C++ callback libraries. > > cairomm is a C++ wrapper for the cairo graphics library. It offers all > the power cairo with an interface familiar to C++ developers, including > use of the Standard Template Library where it makes sense. Even though > cairomm can be used on its own, it is often used together with the > higher level toolkit C++ wrapper, gtkmm. > > glibmm is a set of C++ bindings for Glib2 Library, including cross- > platform APIs such as a std::string-like UTF8 string class, string > utility methods, such as a text encoding converter API, file access, > and > threads. > > gtkmm is the official C++ interface for the popular GUI library GTK+. > Highlights include typesafe callbacks, and a comprehensive set of > widgets that are easily extensible via inheritance. You can create user > interfaces either in code or with the Glade User Interface designer, > using libglademm. There's extensive documentation, including API > reference and a tutorial. > > > > 2.2. Risks and Assumptions: > gtkmm and glibmm follow the official GNOME Platform Bindings release > schedule. This guarantees API/ABI-stability and new releases on a > predictable schedule, delivering C++ API for the underlying GTK+ and > GNOME APIs as soon as possible. > > The problem we need deal with is that of the different C++ ABIs of > Sun > Studio CC and GNU g++. Now that Sun Studio is available as a free > download it's not such a big problem, but there are modules that won't > build with Sun Studio. However Sun Studio C++ has maintained a stable > C++ ABI for over a decade. Considering the g++ compiler in Solaris > can't > build any 64-bit binaries that are actually usable, we only deliver > these packages build with Sun Studio. For those modules that won't build > with Sun Studio, It is maintainer's responsibility to fix the build > problems. > > We propose to minimize the risk by first delivering a set of gtkmm, > glibmm, cairomm and sigc++ libraries which are built using Sun Studio > compilers and in subsequent case to address the provision of g++ > compiled libraries that may address specific needs accordingly. > > 4. Technical Description: > 4.1. Details: > libsigc++ provides the following Features: > > - Compile time typesafe callbacks (faster than run time checks) > - Typesafe violations report line number correctly with template > names (no tracing template failures into headers) > - No compiler extensions or meta compilers required > - Proper handling of dynamic objects and signals (deleted objects > will > not cause segmentation faults) > - Extendable API at any level: signal, slot, connection and trackable > - Extensions do not require alteration of basic components > - User definable accumulators > - A variety of adaptors to change the callback signature: bind, > hide, > retype, compose and lambda call groups > - Various compilers and platforms are supported: gcc, cygwin, > mingw32, > MS .NET 2003, Sun Forte C++, Compaq C++, Intel C++, IBM AIX, Tru64, > IRIX MipsPro. > > cairomm is part of the gtkmm (gtk--) framework to allow developers to > make full use of the capabilities of Object Oriented Programming > language features as in C++. > > Cairo is a graphics description and rendering library. Cairomm provides > classes that allow the cairo API to be accessed in an Object Oriented > constructs. Cairo allow graphics to be created programmatical in its > own > language and the be rendered onto surfaces of specific target file > formats, such as PostScript,PDF and so on. > Current supported rendering surfaces are: > - Image Surface (memory buffers) > - PDF Surface > - PostScript Surface > - SVG Surface > - Xlib Surface (X11 based systems) > - Win32 Surface (Windows) > - Quartz Surface (MacOS) > - Glitz (OpenGL-accelerated, experimental not fully supported) > > These surfaces can then be augmented with the upper layer of libraries > like that of gtkmm to create GUI application. > > To simplify the creation of C++ binding for gtkmm, glibmm delivers tools > called gmmproc and generate_wrap_init.pl that can create wrapper for > other glib/GObject-based libraries. For example, gtkmm uses this to > generate most of its source code. The details on how to do this is > described in Reference [7]. > > > gtkmm provides the following Features: > - Use inheritance to derive custom widgets. > - Type-safe signal handlers, in standard C++. > - Polymorphism. > - Use of Standard C++ Library, including strings, containers, and > iterators. > - Full internationalisation with UTF8. > - Complete C++ memory management > - Object composition > - Automatic deallocation of dynamically allocated widgets. > - Full use of C++ namespaces. > - No macros. > - Cross-platform: Linux (gcc), FreeBSD (gcc), NetBSD (gcc), Solaris > (gcc, Forte), Win32 (gcc, MSVC++ .Net 2003), MacOS X (gcc), others > Free software and free of cost for both Open Source and proprietary > development. > - Discussed, designed and implemented in public. > > > 4.5. Interfaces: > > Exported Interfaces > Interface Stability Comments > --------------------- ---------------- > --------------- > SUNWsigcpp Uncommitted Package names > SUNWsigcpp-devel Uncommitted > SUNWcairomm Uncommitted > SUNWcairomm-devel Uncommitted > SUNWglibmm Uncommitted > SUNWglibmm-devel Uncommitted > SUNWgtkmm Uncommitted > SUNWgtkmm-devel Uncommitted > > libsigc-2.0.so Volatile See Note 1. > libcairomm-1.0.so Uncommitted > libglibmm-2.4.so Uncommitted > libatkmm-1.6.so Uncommitted > libgtkmm-2.4.so Uncommitted > libgdkmm-2.4.so Uncommitted > libpangomm-1.4.so Uncommitted > /usr/demo/jds/bin/gtkmm-demo Uncommitted > glibmm-2.4/proc/gmmproc Consolidation See Note 2. > Private > glibmm-2.4/proc/generate_wrap_init.pl Consolidation See Note 2. > Private > > /usr/lib/pkgconfig/atkmm-1.6.pc Uncommitted See > Note 3. > /usr/lib/pkgconfig/gtkmm-2.4.pc Uncommitted > /usr/lib/pkgconfig/pangomm-1.4.pc Uncommitted > /usr/lib/pkgconfig/cairomm-1.0.pc Uncommitted > /usr/lib/pkgconfig/sigc++-2.0.pc Uncommitted > /usr/lib/pkgconfig/glibmm-2.4.pc Uncommitted > > Note 1: We classified this as Volatile as we have little working > history > with this particular community, thus a lack of reasonable > certainly how well will they keep the interface stable. > > NOTE 2: Programs which used required by the upper stack, namely, gtkmm > module to generate the C++ files based on some declarative > language. Since its potential usage outside the stack is > minimum, hence the Private interface. > > Note 3: All the header file include path are included are accessible by > the *.pc files, hence making these Uncomiitted. > > > Imported Interfaces > Interface Stability Comments > --------------------- ---------------- > ---------------------- > > GNOME Committed Platform Libraries Committed LSARC/2007/520 > > GNOME 2.20 > GTK+ library > > > > 4.9. I18N/L10N Impact: > The JDS team and the G11N are working together to evaluation and > provide I18N/L10N support > > 4.10. Packaging & Delivery: > The project will be delivering the following packages: > SUNWgtkmm > SUNWgtkmm-devel > SUNWglibmm > SUNWglibmm-devel > SUNWcairomm > SUNWcairomm-devel > SUNWsigcpp > SUNWsigcpp-devel > > > 5. Reference Documents: > [1] gtkmm glibmm homepage http://www.gtkmm.org/ > [2] cairomm homepage - http://cairographics.org/cairomm > [3] cairomm download: http://cairographics.org/releases/ > [4] libsigc++ Homepage - http://libsigc.sourceforge.net > [5] libsigc++ Tutorial: > http://libsigc.sourceforge.net/libsigc2/docs/manual/html/ > [6] libsigc++ API Reference - http://libsigc.sourceforge.net/libsigc2/docs/ > [7] Wrapping C Libraries with gmmproc: > > http://www.gtkmm.org/docs/gtkmm-2.4/docs/tutorial/html/chapter-wrapping-c-libraries.html >
