Re: Future features of Euphoria?

new topic     » goto parent     » topic index » view thread      » older message » newer message

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

new topic     » goto parent     » topic index » view thread      » older message » newer message

Search



Quick Links

User menu

Not signed in.

Misc Menu