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
