Hi,

> Indeed, your suggested use of MARKER is what I anticipated but I have to
> agree with you, it would be too difficult/dangerous for an average
> programmer to try.

I wrote "difficult" not "too difficult" A subtle difference.

> Hence, let us revisit FORGET.
> I agree with you again that with Flash memory "de-fragmemetation" is
> not an option. However, there is a solution if you agree to modify
> the dictionary structure just a bit. I believe that you are familiar
> with the various "dynamic storage allocation" algorithms (Knuth, Vol
> 1, Fundamental Algorithms, 2.5 Dynamic Storage Allocation). What if
> we introduce one bit for each definition which means "FREE" or
> "IN-USE". FORGET would become: (1) Mark the definition as FREE (2) if
> possible, merge this newly freed Flash space with adjacent Flash free
> definitions. For the purpose of this algorithm the "unused dictionary
> space" would be just another free definition space on our linked
> list.  When compiling, we can compile into the largest free
> definition space or choose another strategy.

That may work. The only problem I have with it is: A colon
definition does not know how much space it needs in advance.
So how do you decide, which fragment do you use with a particular
definition? And what do you do, if such an limit is reached?

> By the way, I don't agree with Forth-RC1 comment on FORGET which
> says as follows: "This word is obsolescent and is included as a
> concession to existing implementations."

I have absolutely no problem that FORGET will be forgotten.

> (2) How else can one implement "Dynamic Software Updating" 
> <http://en.wikipedia.org/wiki/Dynamic_Software_Updating>.

Do you really have non-disruptive software upgrades in mind?
That is so much far beyond the scope of my little toy,  that
I even decline any ambitions in this direction.

> As I am not a Forth expert (yet), did any other flash based Forth 
> introduce FORGET?

I assume, most of them do not have word lists and hence do not have
the problems arising from them ;) There are a few members
of this list, that may tell better.

Matthias

------------------------------------------------------------------------------
Everyone hates slow websites. So do we.
Make your web apps faster with AppDynamics
Download AppDynamics Lite for free today:
http://p.sf.net/sfu/appdyn_d2d_feb
_______________________________________________
Amforth-devel mailing list for http://amforth.sf.net/
Amforth-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/amforth-devel

Reply via email to