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 >> >> > >
