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