Re: Feature requests for Eu 2.5.
- Posted by Pete Lomax <petelomax at blueyonder.co.uk> Aug 20, 2003
- 517 views
On Tue, 19 Aug 2003 03:15:50 +0000, Christian.CUVIER at agriculture.gouv.fr wrote: >Beware the long post... Ditto. I'll try and keep it as brief as possible though. I'm only going to give my opinion, not detailed argument, and I'm only doing this so my priorities are voiced, not to start a war. I do really like Euphoria as it is, but of course that doesn't mean I can't think of any improvements, either. > >The following is a commented list of features that I'd find desirable >in Eu 2.5. > >A/ Variable management >1/ Pass by reference in routines No (Just my opinion, don't start on me >2/ Variable sharing See named scopes >3/ Static variables in routines An ini file is much better. The ini file handler Mike coded for MEditor is very good, btw. >4/ Allow uninitialized symbols to be passed to and returned from=3D20 >routines. No >5/ Arraying of symbols. See variable_id() >6/ Namespace hierarchy Ah namespaces Providing Matt Lewis' mods go into 2.5 that'll probably do for now. >7/ Scoped symbols I like this idea enough I've made it a separate post >B/ Routine management >1/ Forwarding. If you are complaining about the syntax of routine_id then go away. However, I must disagree with the religious zealotry which dictates: procedure add_to_table(sequence name, object value) x&=3D{routine_id(name),value} end procedure procedure a() end procedure add_to_table("a",1) must give an error.True, routine_id() occurs on a line of code before the definition of a(), but is executed after a() has been defined. >2/ Allow discarding of function return values. See next >3/ Return of several symbols. In OE we decided on (cmiiw): #(x,y)=3D{a,b} means x=3Da, y=3Db #(x,y)#=3D{a.b} means x=3D{a,b}, y=3D{a.b} admittedly the second form is less useful. The right hand side may be a function returning a sequence, and #()=3Dfunc() will discard the results. >4/ Optional parameters. No. A minor syntax improvement would be the only gain. >5/ Default values for arguments. Ditto. See how pretty_print does this. >6/ Named parameters Maybe. You can use your own enumerated constants to achieve this tho. >7/ Nested routines No. named scopes would be a better way to handle this. >8/ Routine_ids for builtins. Yes. >9/ Routine redefinition. Don't understand. You can already do this. If it was in a named scope there would be no need for an undeclare routine. >C/ Instruction flow cntrol >1/ Optional argument for the exit statement. >2/ Next statement >3/ Retry statement >4/ Exif statement >5/ Select statement=3D20=3D20=3D20 >6/ xwhile loop All No. (This is just my opinion, remember) >7/ Exception handling =46atal error handling Yes, user-defined throw, No. >8/ Guards No >9/ Dynamic code execution. No. I plan to release an expression evaluator later this year. >10/ Selective type checking. No. Use explicit type checking. >11/ Additional type checking. Ditto >12/ Watch facility No, this is a simple application-specific function. >D/ Sequences and slices >1/ Negatives indexes Yes. >2/ More slices No. write a simple application-specific function. >3/ Shorthands for "length(this)" No. -1 is enough for me. Omitted slice start/end is a typo, not a shorthand. >4/ Composition of sequences No. write a simple application-specific function. >5/ Dynamic indexing Ditto. >6/ Sequence manipulation routines Ditto... >built-ins would probably increase speed. I doubt they would be used often enough to warrant this. > E/ Object programming capabilities. >1/ Structures >2/ Classes >3/ Dot notation Possibly some syntax mods to make third party libraries easier to use >F/ Miscellaneous >1/ Pre- and post-inc/decremnet operators C-style >2/ Allow concatenation of logical relations, such as 0<=3D3Dx<=3D3D9. >3/ Allow assignments inside conditions. Maybe. I've already mentioned warnings and improvements to trace. And lastly, variable_id(). Admittedly I haven't got my head round all the cases it should handle or the difficulties it might create. I once proposed some scope rules for this. I'll dig them up if anyone is interested. Pete