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
> 


Reply via email to