Re: Future features of Euphoria?
Carlos Jose Gonzalia writes:
> I'm interested in knowing about the future plans for nexts versions of
> Euphoria.
I am working full-time on a new version. Eventually I will post more
information on exactly what features are planned. I am always interested
in getting suggestions.
This week I've been investigating support for hardware interrupt handling.
By supplying its own clock interrupt handler, Euphoria can now let you
select the clock-tick interrupt rate and boost it up much higher
than the normal 18.2 ticks per second that is standard with PC's. You can
set it to over 1000 ticks/sec on a Pentium before performance starts to degrade
a little. This has two benefits:
1. You can measure time with much more precision. Some people
have found 18.2 ticks per second (time() resolution of .05 seconds) to
be inadequate when measuring things that happen at (say) 20/sec
such as displaying frames of graphics on the screen.
2. Euphoria can use the interrupt handler to sample where your program
is executing, and generate a time profile.
Euphoria already has a statement-count profiler,
"with profile", but obviously one Euphoria statement could
take hundreds of times longer to execute
than another. Now you can get an accurate profile
showing what percentage of the total time was spent executing
each Euphoria statement. I've measured a few of the demo programs and
found one surprise so far. The mset program running on a 150Mz Pentium
spends almost 60% of its time in pixel(), plotting a pixel. I had thought
that it spent over 95% of its time doing floating-point calculations
to determine the color to make each pixel. Actually, I later found on
a 486 it *does* spend 94% on f.p. calculations and only 6% in pixel().
The Pentium is obviously much faster on f.p. but not much (if any) faster
on video output. When I altered the code to save each horizontal
line of pixels into a sequence, and then call pixel() with the whole
sequence, it more than doubled the speed on the Pentium, but made only
a small increase on the 486.
There are many other features on the wish list. There should be a beta
release of v1.5 for everyone to play with in a few months. Maybe I can
give out an "alpha" release to specific people that want to test it.
> After playing a bit with the language I noticed you always end defining
> constants
> for your significative data, since you only can represent them as numbers. For
> example, defining constants MONDAY, ..., SUNDAY for the integers from 1 to 7.
I
> believe this has to be automated some way, since the pervasiveness of this kin
d
> of datatype (known as enumerated data) is usual in normal programming. It
Yes, this concerned me a few years ago and I was tempted to do
something in the area of enumerations, however the overriding philosophy
of Euphoria is to keep things simple and avoid introducing new concepts
unless they are really necessary or really powerful and orthogonal.
By "orthogonal" I mean it can be applied broadly across the language, not
just to some special area, and also it must not partially duplicate
something that can already be achieved with an existing feature.
We used to send out questionnaires to registered users and what struck
me was that "simplicity" was often rated
the highest, out of several features (speed, flexibility etc.)
that people could choose from on a multiple-choice question.
The core language has been stable for quite a while. We've mainly been
adding library routines etc. If someone suggests a brilliant idea we'll
go for it, but for the next release we aren't planning anything.
We also hope to release a very simple Windows 95/NT version, but we will
keep improving the DOS version. The WATCOM C source code will be
largely shared between the two versions.
> algebraic types. One way would be to include a complex macro expansion mechani
sm
> similar to the ones found in some C systems.
I believe that even Bjarne Stroustrup (C++) hates the C #define facility.
He thinks it is too flexible and undisciplined.
Rob Craig
Rapid Deployment Software
|
Not Categorized, Please Help
|
|