Future plans for Minimum Profit =============================== I've been a long time willing to write about what I'm planning for the next big version of Minimum Profit. Seems it's time to do it. As far as I can see it, Minimum Profit has two main handicaps, described in the TODO list as the following bugs / pending enhancements: * 1007: Add Unicode support. * 1014: Add Undo support. Also, as it has been getting older over the years (first code base dates from 1991!) more and more ad-hoc internal structures has been added, to the point that I feel unconfortable with it. Some internal databases lack from any kind of flexibility: for example, the syntax highlight definitions. So, last year I've been working on a library to be used as Minimum Profit "guts" that allows easy expansion, provide usual commodity structures (as dynamic arrays and hashes and simplify memory management) and include some kind of scriptability. I reworked another project of mine, Filp [1], that went into a dead-end for reasons not to be talked about here but that had the embryo for all the functionality mentioned above. I call this library mpdm ('Minimum Profit Data Manager'). I'll probably use it also in new projects and / or resurrected ones, but I think the name will stay. As said before, it includes native Unicode support (all string management is done as wchar_t, so it will kill bug #1007), it has a rudimentary, reference-count-based garbage collector (so it will be easy for me to close bug #1014), and with both dynamic arrays and hashes I'm going to refactor all those ugly internal structures. Scriptability (or 'programability') will come from a new sub-library, that I imaginatively call mpsl (from 'Minimum Profit Scripting Language'). It will implement a C-like programming language that will have access to all MP's internal structures (in fact, a big part of MP will be implemented in mpsl itself). Using mpdm as a base and with the help of Flex and Bison, it has been surprisingly easy to build a programming language from scratch. Please, don't panic. I've not become nuts trying to mutate Minimum Profit into an Emacs-like monster; though all that mass of buzzwords ('garbage collection', 'self-hosting virtual machine') may sound scary, I'll try, as always do, to keep the beast small. In fact, begin 95% finished, the mpdm + mpsl libraries, after being stripped, weight approximately 57k. Dinamic memory needs will grow, surely, but I'll keep MP as low profile as it is now (the very reason you are using it). Regarding the interface, the 5.x [2] version won't change very much (forgetting that will be completely programmable, that is). I want to implement, as those of you that have read the TODO file may know, a kind of 'sidebar' that will keep on screen things like the tags (program symbols) or the templates. It will also include an editable buffer that will contain mpsl code to be ran at a key stroke (as a kind of 'internal console'). Syntax highlight definitions will be mpsl programs, as will be user functions and even the configuration files themselves (so I'll break backward compatibility here). I'll surely keep the curses and GTK 2.0 interfaces. As many of you use the MS Windows version, I'll also keep working on it, though I foresee that it will lack behind Unix versions as I'm not very fond on it. I'm not sure about what will happen to GTK 1.x support. About the timeline, I don't even remotely know. The libraries I talked about are almost complete; but they have to be integrated in the interfaces and that's in a very primitive stage. Whenever I know when will any of this be available, I'll post it here. As always, I appreciate any kind of suggestions and / or help. [1] The Filp project page: http://www.triptico.com/software/filp.html [2] Why 5.x and not 4.x? I started a 4.x branch and later abandoned it, so I stepped over. Yes, I also think that "3.x" and "5.x" are pretty lame names for branches; I'll try to think about new, bombastic names for them. If you have any idea, please write me. Regards, -- Angel Ortega http://www.triptico.com -- To unsubscribe, send mail to mp-unsubscribe_lists.triptico.com.
This archive was generated by hypermail 2.2.0 : Thu Apr 10 2008 - 08:59:26 CEST