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