Hello Matthias,

Matthias Trute <mtr...@web.de> writes:

> 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.

Here's an interesting article by one of Forth greats:
"Proposal: un-obsolete FORGET"
http://www.forth200x.org/unobsolete-forget.txt

The author sees FORGET as a useful tool for hot system upgrade. He
writes:

"""
Typical use
===========

FORGET is useful when a human redefines an existing
word in the command line, finds a bug, and wants to
correct it:
"""

By the way, there are "marketing reasons" for Amforth to acquire
FORGET-fullness :-)

Regards, Enoch.


>
>> (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


------------------------------------------------------------------------------
Symantec Endpoint Protection 12 positioned as A LEADER in The Forrester  
Wave(TM): Endpoint Security, Q1 2013 and "remains a good choice" in the  
endpoint security space. For insight on selecting the right partner to 
tackle endpoint security challenges, access the full report. 
http://p.sf.net/sfu/symantec-dev2dev
_______________________________________________
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