taskSavannah Administration - Tasks: task #4921, Submission of idioskopos


task #4921: Submission of idioskopos

Submitted by:  Rick L. Vinyard Jr. <rvinyard>
Submitted on:  Sat 12 Nov 2005 07:12:35 PM UTC  
Should Start On:  Sat 12 Nov 2005 07:00:00 AM UTC Should be Finished on:  Tue 22 Nov 2005 07:00:00 AM UTC
Category:  Project Approval Priority:  5 - Normal
Status:  Cancelled Privacy:  Public
Percent Complete:  0% Assigned to:  Sebastian Wieseler <kickino>
Open/Closed:  Closed Effort:  0.00

Add a New Comment (Rich Markup)

You are not logged in

Please log in, so followups can be emailed to you.


Fri 02 Dec 2005 08:44:34 PM UTC, comment #5: 


We did not get a response from you, so we deleted your project from the pending queue.

If you would still like to have your project hosted at Savannah, please register it again.

The re-registration URL found in our acknowledgment of your earlier registration will direct
you to the proper location where you can re-register your project.


Sebastian Wieseler <kickino>
Project MemberIn charge of this item.
Fri 25 Nov 2005 07:51:14 PM UTC, comment #4: 


I am waiting for an answer from you.

If within one week I still do not get a reply, I will remove your project.
You will still be able to register it again once you have the time to deal with the registration issues.

Are you still willing to host your project at Savannah?
If not, please tell us - we don't bite, and it will make us gain time.


Sebastian Wieseler <kickino>
Project MemberIn charge of this item.
Mon 14 Nov 2005 08:47:05 PM UTC, comment #3: 


Please publish your software under LGPL V2.1 or any later version.

The reasons to mention are: the license upgrade will deal with new flaws that will happen in the future (e.g. ASPs will be dealt with in GPL V3, AfferoGPL
being a prototype for this).
If not GPL V2 or later, there will be a license upgrade problem for users of the code (especially if the author is not reachable anymore).

So could you please assign to LGPL V2.1 or any later version?

Nevertheless we cannot approve your project with LGPL V2.1 (without the or-any-later statement).


Sebastian Wieseler <kickino>
Project MemberIn charge of this item.
Sun 13 Nov 2005 08:03:19 PM UTC, comment #2: 

For now, I'd prefer to leave the licensing at v2.1 only.

I don't think this project will suffer from migration to v3 issues like others might since I'm the only copyright holder.

Given the nature of the library I don't foresee much in the way of outside contribution.

If at some time in the future I'm surprised and receive even one outside contribution I'd most certainly revisit adding "or later" to simplify moving to v3, v4, or whatever the future might hold.

Rick L. Vinyard Jr. <rvinyard>
Sun 13 Nov 2005 05:10:32 PM UTC, comment #1: 

I'm evaluating the project you submitted for approval in Savannah.

Licensing under the "GNU LGPL v2.1 only" is problematic.
Would you agree to license your project under the "GNU LGPL v2.1 or later"?

The reason for this is that when we publish LGPL v3,
it will be important for all LGPL-covered programs to advance to LGPL v3.
If you don't put this in the files now, the only way to port your program to LGPL v3 would be to ask each
and every copyright holder, and that may be very difficult.

We can explain the issue in more detail if you wish.
If you have concerns about "GNU LGPL v2.1 or later", we'd be happy to address them too.


Sebastian Wieseler <kickino>
Project MemberIn charge of this item.
Sat 12 Nov 2005 07:12:35 PM UTC, original submission:  

A new project has been registered at Savannah
The project account will remain inactive until a site admin approve or discard the registration.


While this item will be useful to track the registration process, approving or discarding the registration must be done using the specific "Group Administration" page, accessible only to site administrators, effectively logged as site administrators (superuser):


######### REGISTRATION DETAILS #########

Full Name:

System Group Name:

  non-GNU software &amp; documentation

  GNU Lesser General Public License

  idioskopos (Greek: idio- inward, within, private; -skopos look, aim, target) is a C++ library that adds object reflect and introspection.

The code is available at:

There are numerous libraries that provide object introspection, but are generally part of some framework such as:

  • Glib's gobject
  • Gtkmm's Glib::Object
  • VCF's object class
  • QT's introspective objects
  • PUMA
  • OpenC++
  • et. al.

There is at least one other library that provides property management; libpropc++ at:

Support for object reflection and introspection are 'hot' topics in C++ and already have some groups pushing for inclusion in the next ANSI/ISO C++ standard.

So, why does the world need yet another library supporting reflection and introspection? It probably doesn't, but the reason I decided to create one anyway was due to the fact that the current approaches suffer from one of the following issues:
  1. Dependency on a large framework; to use the introspective features of a library like gobject or VCF's objects you need to add a dependency on the framework, which can be quite large.
  2. Preprocessors; approaches such as that taken by QT and PUMA require a preprocessor that adds reflection support. This is probably the cleanest approach, but IMHO not as simple and straightforward if all you want is basic reflection/introspection support.
  3. Not free; If you take a look at the libpropc++ library the code is released under the LGPL, but the author's statements regarding what the LGPL means are wrong. I have observed several interactions with the author and developers on the Gtkmm lists and he obviously doesn't get the meaning of free as in freedom. Thus, the library is released under the LGPL, but it has a 'cloud' about it that keeps others from using it.

So, without further ado, the idioskopos library is based heavily on the approach taken in Gtkmm to wrap the gobject interface. However, it is a standalone library and depends only on libsigc++ and boost.

The following illustrates the code necessary to create reflective properties: a static property x and a dynamic property y.

class Example: public Object {
  Property<double> x;

  x(*this, "x", 2.0),
  create_property<double>("y", 1.0);

Introspection can be accomplished with:
  cout << "All properties in class Example:\n";
  for (i = e.get_properties().begin(); i != e.get_properties().end(); i++)
    cout << "\t" << i->first << "\tType: " << i->second->type().name() << std::endl;

Other Software Required:
  These are pretty normally found in all distributions, but I'll list them for completeness:

boost shared pointer (now actually in gcc)

Rick L. Vinyard Jr. <rvinyard>


(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

Attach Files:

No files currently attached


Depends on the following items: None found

Items that depend on this one: None found


CC list is empty


Do you think this task is very important?
If so, you can add your encouragement to it.
This task has 0 encouragements so far.

Only logged-in users can vote.




Follow 5 latest changes.

Date Changed by Updated Field Previous Value => Replaced by
2005-12-02 kickino StatusPing-ed => Cancelled
    Open/ClosedOpen => Closed
2005-11-25 kickino StatusWait reply => Ping-ed
2005-11-13 kickino StatusNone => Wait reply
    Assigned toNone => kickino

Back to the top

Powered by Savane 3.5