1. Wish list

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

new topic     » topic index » view message » categorize

2. Wish list

Hello all,

is there a official announcement about some features contained in the
next release of Euphoria? Is there a wish list? smile

Best regards,
   Juergen

new topic     » goto parent     » topic index » view message » categorize

3. Re: Wish list

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

new topic     » goto parent     » topic index » view message » categorize

4. Re: Wish list

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? smile

> 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

new topic     » goto parent     » topic index » view message » categorize

5. Wish list

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.

new topic     » goto parent     » topic index » view message » categorize

6. Re: Wish list

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

new topic     » goto parent     » topic index » view message » categorize

7. Re: Wish list

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

new topic     » goto parent     » topic index » view message » categorize

8. Re: Wish list

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

new topic     » goto parent     » topic index » view message » categorize

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

new topic     » goto parent     » topic index » view message » categorize

10. Re: Wish list

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

new topic     » goto parent     » topic index » view message » categorize

Search



Quick Links

User menu

Not signed in.

Misc Menu