Gtkmm, Glibmm, Cairomm and libsigc++ for Indiana [LSARC/2008/074 FastTrack timeout 02/13/2008]
Lloyd L Chambers
Lloyd.Chambers at sun.com
Tue Mar 11 09:56:11 PDT 2008
Irene,
As of March 11 the case is still "waiting fast-track". Please update
the IAM file.
Thanks,
Lloyd
On Feb 20, 2008, at 6:59 PM, Irene Huang wrote:
> Closing as approved, since no further discussion after the update of
> the spec.
>
> --Irene
> Irene Huang wrote:
>> 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
>>>
>>>
>>
>>
>
---
Lloyd L Chambers
lloyd.chambers at sun.com
Sun Microsystems, Inc
More information about the opensolaris-arc
mailing list