Future plans for Minimum Profit

From: Angel Ortega <angel_triptico.com>
Date: Wed, 9 Feb 2005 19:34:30 +0100
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.

Received on Thu Oct 06 2005 - 16:53:24 CEST

This archive was generated by hypermail 2.2.0 : Thu Apr 10 2008 - 08:59:26 CEST