Re: Garbage Collection (Real Features)
- Posted by "Christian Cuvier" <christian.cuvier at agriculture.gouv.fr> Jun 29, 2005
- 537 views
> Date: Wed, 29 Jun 2005 02:07:59 +0100 > From: Pete Lomax <petelomax at blueyonder.co.uk> > Subject: Re: Garbage Collection (Real Features) > > > On Tue, 28 Jun 2005 12:54:56 -0700, Vincent <guest at RapidEuphoria.com> > wrote: > > >>>Here are some "REAL" feature ideas: > > Needless to say, I cannot resist categorising them: > >>> > These need full design & consultation: [hurrumpgh? ] > >>>* C++ style local & global namespaces >>>* Current namespace system improvement (Matt's idea) > > > Plus: > include file enhancements, specifically the ability to install eg > win32lib +20 in a subdirectory without having to edit win32lib.ew, > along with the automatic resolution of duplicate globals, when the > intent is blatantly obvious, from include &/or directory structure. > This is one of the major roadblocks to modular development of modular code in Eu, so I wholeheartedly agree. Also needed some form of dynamic include statement. For instance: include @file.lst would open file.lst, read lines of the form: foo.e:myfoo and issue "include foo.e as myfoo" Or include (somevar) [as (somevar)] > Would be nice: > >>>* 'Constant' declaration to be scoped at routine-level >>>* Multiple items to be on the left hand side of an assignment > > > I might find use for: > >>>* Built-In absolute value routine >>>* Code blocks within routines with their own scope >>>* Assignment on declaration >>>* Named loops and blocks as long as you can exit, continue or repat them in sensible ways. Also "exit 2" to leave this loop and the one above would be really useful. >>>* Pass parameters by reference >>>* Specify non-contiguous elements in slices >>>* Specify slice elements via a sequence >>>* Specify sequence indexing and slicing on function calls >>>* Swap elements built-in routine >>>* Insert Elements built-in routine >>>* Delete Elements built-in routine >>>* Block commenting >>>* Built-In routine to delete and insert elements into a sequence >>>* Extract Elements Expression >>>* Case/Switch Statement >>>* Memory mapped data (C structures/unions) I'd consider all the above as musts, voting aye with both hands. > > I abstain: > >>>* Duplicated Constant Declarations >>>* Assignment as an Expression >>>* Limited GOTO construct > > > I vote against: > I vote for: >>>* 'Continue' Interation' keyword >>>* 'Repeat Current Iteration' keyword >>>* Desequencing operator >>>* Return value from a function can be be ignored >>>* Expression evaluation: eval() >>>* Run-time metadata access for programmers >>>* Dynamic variable routines >>>* Macros > > > I vote strongly against: > Most of the below would be useful: >>>* Forward referencing of data (variables and constants) YES. Ever had to move vars from include file to include file to avoid errors? I did, never that again. >>>* 32 bit integers is a must as long as you want natural intefacing with foreign code >>>* 32 bit pointers that may not be needed, I abstain >>>* Char datatype >>>* String datatype >>>* Fixed length vectors (arrays) >>>* Data type specifier of vector declarations >>>* Heterogenous fixed-length vectors (structures) If they allow faster execution and less memory bloat, most of these must be available. More expertise needed. >>>* Display format specified at declaration time >>>* Additional metadata for variables I would find some nifty use for these. var by var type checking would be very useful trapping reads to variables would be really useful ability to modify bounds of a for statement is really needed in quite a few situations. Otherwise yout code gets bloated with error detection ifs. Alternately, exception handling with resume ability would greatly simplify some coding. > Regards, > Pete CChris