On 20.06.2008, at 04:48, Anton Novikov wrote:

>> Please look at the "basic" code from FLTK1 and FLTK2 (x, osx,
>> Widget/Fl_Widget). It's inherently small, and coupled with base  
>> classes.
> I copied source files that seem to me containing "basic" code(I  
> chose them quickly, mainly basing on filenames, so it's unprecise).  
> it's fltk-1.1.8
> [EMAIL PROTECTED] src % ls src_basic
> filename_absolute.cxx (...)


I have to say that this is starting to look like a viable solution.  
Seriously, I am starting to really like this!

So here is my suggestion (step by step, because I need to lay this out  
for myself, too):

- we immediatly stop any development on 1.3 and 2.x (that's the easy  
part ;-)
- we set up a new branch in the SVN called FLTK 3 (aaaaaaaaah!)
- then copy *both* code bases into this branch, renaming directories  
so they can coexist (src1, src2, test1, test2, ...)

Now we start another library inside all this: FLTK3
- we need to set up a directory structure to support a modular FLTK3
- we need to merge the autotools environment and IDE project files of  
F1 and F2, so that *both* libraries *plus* F3 will be built, and both  
F1 and F2 link against F3 (which is still empty at this point)
- we need to set up a system for regression testing

And now comes the big trick:
- we create the F3 OS support and core by *moving* and merging F1 and  
F2 core files (see the list above). The trick is not to *copy* those  
files, but to *move* them. That means that F1 and F2 will *loose*  
functionality in its own core, but will regain an improved  
functionality by linking back to F3.

This trick has a many advantages:
1: no coding is done twice (we need to keep a minimal glue layer  
between F1 and F3, and F2 and F3 though)
2: all developers work on the same project
3: all developers can review their peer's code
4: all *users* can continue to use their favourite API with a stable  
understructure (and keep testing what we write)
5: we *finally* present a unified image to the outside world again

We will reach a point when the core is ported and individual widgets  
will have to move. If everything works as I expect, we will then be  
left with the compatibility layer that I mentioned in an earlier mail.  
Nice.

I am all for it. Let's do it right.

  Matthias

----
http://robowerk.com/


_______________________________________________
fltk-dev mailing list
[email protected]
http://lists.easysw.com/mailman/listinfo/fltk-dev

Reply via email to