1. Wish list
- Posted by Jacques Guy <jguy at ALPHALINK.COM.AU> May 26, 2000
- 575 views
Having had my periodic look at what's new in Euphoria, I visited the list archives, where I saw a beginning of a wish list. If you pressed me hard, I'd have two wishes: 1. Constants local to functions and procedures, e.g. function foo() constant stuff = "hello", nonsense = " world" return stuff&nonsense end function 2. Being able to distinguish between include files with a dot syntax or something like that, e.g. include foo.e include bar.e puts(1, foo.hello&bar.hello) Now, I did write "If you pressed me hard" didn't I? Because, really, I don't have a wish list, apart from seeing Euphoria stay as it is. When I look at my Euphoria programs, and what they were in Turbo Pascal, typically, I see 1000 lines of Euphoria for 5000 of Pascal. I also ran benchmarks (on the very first version of Euphoria) and when I saw that Euphoria was at worst 8 times slower, and at best as fast as Borland Pascal, I decided to switch. Giving up a language in which you have programmed for 15 years is hard. And coming to grips with some of the Euphoria features is ... it's like learning to build your sentences backwards in Japanese, or like learning tones in Chinese. But once you get the hang of it, it's dead easy. Dead easy. So now I've got a few Euphoria programs looking after a database of some 30,000 files, compiling statistics about their contents, all in a grand total of perhaps 4,000 lines of code. In Pascal, or C (what do you think? C was my second language, the first being ALGOL) I'd say it would take 40,000 lines. And bugs aplenty. And, BTW, that database is growing at the rate of 200 files a week. I'm perfectly happy with Euphoria as it is. Oh sure, when compiled Euphoria is ready, I'll likely buy it. But, even just interpreted, it's fast enough on my old AMD K6 running at a miserly 200MHz. (You know, my first personal computer was a Z80 running at 2MHz -- yes, TWO -- so...)
2. Wish list
- Posted by Juergen Luethje <jluethje at gmx.de> Jun 30, 2002
- 515 views
Hello all, is there a official announcement about some features contained in the next release of Euphoria? Is there a wish list? Best regards, Juergen
3. Re: Wish list
- Posted by Juergen Luethje <jluethje at gmx.de> Jul 01, 2002
- 504 views
Hello Derek, thanks for your reply. Would you like to put the list on the web? Maybe, there can be some interesting discussions about the topics on the list, maybe Rob will tell us, whether he plans to implement this or that? Best regards, Juergen > On my PC at home. >> -----Original Message----- >> From: kbochert at ix.netcom.com [mailto:kbochert at ix.netcom.com] >> Sent: Monday, 1 July 2002 16:04 >> To: EUforum >> Subject: RE: Wish list >> >> >> Hi Derek Parnell, you wrote on 7/1/02 9:41:43 PM: >> >> >Yes, but not from RDS. I've got one that I add to when >> anybody mentions >> >something they'd like to see. >> >> Where?? >> >> Karl Bochert
4. Re: Wish list
- Posted by Juergen Luethje <jluethje at gmx.de> Jul 01, 2002
- 508 views
Hello Matt, thanks for your reply. >> -----Original Message----- >> From: Juergen Luethje [mailto:jluethje at gmx.de] >> is there a official announcement about some features contained in the >> next release of Euphoria? Is there a wish list? > This is in no way official (but it is an announcement of a release of > Euphoria), but I'm getting ready to release my own hacks at Eu. I've added > the ability to specify a routine to be called in the event of a runtime > error, and the ability to refer to variables using a similar mechanism to > routine_id. > Matt Lewis Maybe a "stupid" question, but as an amateur, I simply don't know it: What are the advantages of having the ability to refer to variables using a similar mechanism to routine_id? Best regards, Juergen
5. Wish list
- Posted by rforno at tutopia.com Jul 29, 2002
- 509 views
EUPHORIA WISH LIST from R. M. Forno Perhaps not for version 2.4, but for 3.0 or 4.5... 1) Comments C type: /* ... */ to ease commenting out code blocks. 2) Enhancements to the trace facility: A) Variables should not be shown automatically but only at an user request. When exiting a routine, its private variables should momentarily disappear, and reappear if entering the routine again. B) Allow showing expressions, at least of the form x[i][k], z[2..n], etc. Better if all valid expressions were allowed, including function calls. c) On a more advanced mood, allow entering the editor while in trace mode, defining and executing new routines, modifying old ones, modifying and creating variables, etc. 3) Allow executing string variables, that can contain code like "x = y * p". 4) Allow defining functions from a string, for example: "function foo(integer u) return power(u, u) end function" 5) A function that returns the amount of available real storage at the moment. It will ease the task of determining the size of buffers to avoid using virtual storage. 6) A facility to save the status and variables of a program in the middle of execution, also available from the trace screen. This will ease debugging; you could advance execution to a certain point, save, continue, and in case of failure, restart at the saved point. 7) Add the following *internal* data types: byte, word (2 bytes), and perhaps (why not?) bit and nibble (half byte), all in order to save storage. Programs should switch from one to other according to needs. For example, assume a sequence s s = {}. Then, s &= 1. This can be a byte (or bit) type. If then s &= 65, it remains byte. If then s &= 3456, it should switch to word (the entire sequence). If then s[1] = 12345678, it should switch to the current Euphoria integer type. If then s[2] = 89.876, maybe the current scheme could be maintained (AFAIK, only this element becomes floating point, and the rest remain integer), or else the entire sequence switches to floating. Of course, some other mechanisms could be preferred if they are more efficient or easier to code. Now, this scheme exists to some point, reduced to integer versus floating point. Perhaps my proposal is exceedingly complex. Rob surely has something to say about it. 8) Rob, you know I like APL. There is a feature of APL that I think would be good to implement. +/s would compute the sum of the elements of s, in some way to be defined if s is not a simple sequence. The same for */s, file://s, /%s (where % is a new notation for "remainder"), etc. 10) Add officially to Euphoria the Win32lib, or any replacement for it. This will surely increase the market share for Euphoria. 9) Excuse me, Kat, but I don't think goto would be useful. I recently tried to translate to Euphoria an algorithm I wrote in BASIC years ago, and this was a nightmare, not for the lack of goto (since you can simulate it with a status variable), but only to understand how the algorithm worked. Of course, I am guilty of not having commented it well, but anyway... Thanks for your patience, Rob. I appreciate and support your efforts to keep Euphoria simple and efficient. I don't think my proposals would in any way be contrary to this goal.
6. Re: Wish list
- Posted by Robert Craig <rds at RapidEuphoria.com> Jul 30, 2002
- 503 views
Ricardo Forno writes: > 1) Comments C type: /* ... */ to ease commenting out code blocks. I use F12 in ed to insert a bunch of comments. (Removing them is a bit harder.) In C, I find it strange that there are two different ways of commenting code. /* ... */ was the original way, then they added // to be more compatible with C++. I can never make up my mind which one to use, so I use both, almost at random. I'd rather stick to one consistent method. > 2) Enhancements to the trace facility: > A) Variables should not be shown automatically but only at an user > request. Why? What harm does it do to show a few variables on the screen automatically? > B) Allow showing expressions, at least of the form x[i][k], > z[2..n], etc. Yes, I'll probably do that in the next release. > Better if all valid expressions were allowed, including > function calls. True, but unfortunately it's extremely difficult to implement. > c) On a more advanced mood, allow entering the editor while in trace > mode, defining and executing new routines, modifying old ones, > modifying and creating variables, etc. That's hard too. > 3) Allow executing string variables, that can > contain code like "x = y * p". > 4) Allow defining functions from a string, for example: > "function foo(integer u) return power(u, u) end function" I don't like any feature that requires code or variables to be constructed at run-time and executed. I used this in APL, and found it was an overly-powerful solution searching desperately for a problem. Rarely useful in practice. Theoretically it buys you nothing in terms of the algorithms you can implement. It's also extremely hard to implement in the current interpreter without starting from scratch. Any translated to C code that used this feature would need to carry around a complete copy of the interpreter. > 5) A function that returns the amount of available real storage at the > moment. > It will ease the task of determining the size of buffers to avoid > using virtual storage. You could write a routine that calls allocate() with progressively smaller sizes until it doesn't get a 0 returned, although that wouldn't exclude virtual storage. You might want to know the total free space, or you might want to know the largest contiguous block of storage that's available. You'd also need to know how much space Euphoria variables consume. I don't like to make the implementation details of Euphoria's internal representation so explicit. In most Euphoria programming you shouldn't have to think in terms of bits, bytes and nibbles. I might consider doing something, but now that I have 256Mb RAM, I don't expect to run out of memory very often. > 6) A facility to save the status and variables > of a program in the middle of > execution, also available from the trace screen. This will ease > debugging; you could advance execution to a certain point, save, > continue, and in case of failure, restart at the saved point. Do you want me to undo all the changes that you've made to files? Set the screen back the way it was? Open and close windows, undo the side effects of .dll routines that you've called, memory that you've overwritten, etc.? > 7) Add the following *internal* data types: byte, word (2 bytes), and > perhaps (why not?) bit and nibble (half byte), all in > order to save storage. > Programs should switch from one to other according to needs. > For example, assume a sequence s s = {}. Then, s &= 1. This can > be a byte (or bit) type. If then s &= 65, it remains byte. If then > s &= 3456, it should switch to word (the entire sequence). If then > s[1] = 12345678, it should switch to the current Euphoria integer type. > If then s[2] = 89.876, maybe the current scheme could be maintained > (AFAIK, only this element becomes floating point, and the rest remain > integer), or else the entire sequence switches to floating. You've just described exactly the way APL does things. The problem with having n internal data types, is that you have to handle n-squared cases for every binary operation in the interpreter (or translator). This would be slow, and would bloat the interpreter. It would also increase the number of bugs in the interpreter with all those extra cases to test. > 8) Rob, you know I like APL. There is a > feature of APL that I think would be > good to implement. +/s would compute the sum of the elements of s, > in some way to be defined if s is not a simple sequence. > The same for */s, file://s, /%s (where % is a new notation for > "remainder"), etc. Just use a simple for-loop or a subroutine. Why introduce a fancy new concept? I admit +/ etc. was useful in APL, but APL has different, very rectangular data structures. > 10) Add officially to Euphoria the Win32lib, > or any replacement for it. This > will surely increase the market share for Euphoria. Derek is actively working on Win32Lib, so any bundled version would quickly become obsolete. Win32Lib also has different copyright restrictions. Things would get confusing. I'd like to keep my work separate, especially since I'm charging money for it. Regards, Rob Craig Rapid Deployment Software http://www.RapidEuphoria.com
7. Re: Wish list
- Posted by Martin Stachon <martin.stachon at worldonline.cz> Jul 30, 2002
- 513 views
R. M. Forno wrote: > > Perhaps not for version 2.4, but for 3.0 or 4.5... > > 1) Comments C type: /* ... */ to ease commenting out code blocks. Some editors allow you to (un)comment blocks of Eu code. C programmers often use comments this way: /* * Tao ktere lze popsat slovy, neni pevne a nemenne Tao. */ So it doesn't save you as much typing... --Martin
8. Re: Wish list
- Posted by Ron Tarrant <rtarrant at sympatico.ca> Aug 02, 2002
- 515 views
Euler German wrote: > Me too. ;) I like ed but it lacks several tools which doesn't > contribute to make job easier. I tried ConTEXT, Code-Genie, TSE, etc., > among many others. They're all very good but lacks a thing or another > that I think would be important. You might try the Crimson Editor. It does colour highlighting of Euphoria code (as well as a dozen or so others), has a tabbed MDI, tabs or spaces indenting, a fulltime treeview file selection panel (a la HomeSite, et al) multi-file Search and has a nice User-defined Tool feature that let's you run your code with a menu selection rather than going to a command prompt. It's even got a macro recorder which makes it easier to comment/uncomment a group of lines as Mr. rforno at tutopia.com was talking about. You can check it out at: www.crimsoneditor.com Oh, and best of all, it's free. -Ron
9. Re: Wish list
- Posted by Euler German <efgerman at myrealbox.com> Aug 03, 2002
- 558 views
On 2 Aug 2002, at 6:20, Ron Tarrant wrote: > > > Euler German wrote: > > You might try the Crimson Editor. It does colour highlighting of > Euphoria code (as well as a dozen or so others), has a tabbed MDI, tabs > or spaces indenting, a fulltime treeview file selection panel (a la > HomeSite, et al) multi-file Search and has a nice User-defined Tool > feature that let's you run your code with a menu selection rather than > going to a command prompt. It's even got a macro recorder which makes it > easier to comment/uncomment a group of lines as Mr. rforno at tutopia.com > was talking about. > > You can check it out at: > > www.crimsoneditor.com > > Oh, and best of all, it's free. > > -Ron > Thanks Ron, I'll take a look though I'm tyed up to EditPad Pro already... :) --Euler
10. Re: Wish list
- Posted by g.haberek at comcast.net Aug 04, 2002
- 520 views
parhaps a good way to comment/uncomment a block of code would be with a double equal "==" which is similar to the current comment "--" i know some languages use this for "is equal to" but for euphoria it seems to fit the syntax ~Greg ----- Original Message ----- From: Euler German <efgerman at myrealbox.com> Subject: Re: Wish list > > On 2 Aug 2002, at 6:20, Ron Tarrant wrote: > > > > > Euler German wrote: > > > > You might try the Crimson Editor. It does colour highlighting of > > Euphoria code (as well as a dozen or so others), has a tabbed MDI, tabs > > or spaces indenting, a fulltime treeview file selection panel (a la > > HomeSite, et al) multi-file Search and has a nice User-defined Tool > > feature that let's you run your code with a menu selection rather than > > going to a command prompt. It's even got a macro recorder which makes it > > easier to comment/uncomment a group of lines as Mr. rforno at tutopia.com > > was talking about. > > > > You can check it out at: > > > > www.crimsoneditor.com > > > > Oh, and best of all, it's free. > > > > -Ron > > > Thanks Ron, I'll take a look though I'm tyed up to EditPad Pro > already... :) > > --Euler > > > >