Re: Euphoria Compilers Available Soon

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

>Come on, at 10x speed increase? In Mike's daydreams.
>
>Robert has repeatedly stated that compiling Euphoria isn't going to give
>any
>real speed boost. I'm inclined to believe him. From prior posts, I get the
>impressions that:
>
>1. The Euphoria calling mechanism is *cheap*. Typically, an interpreted
>language has a high overhead for each call that it makes. Most of the time
>it's because there's some sort of stack involved, so data has to be shoved
>on, and then popped off on returning. FORTH is an excellent example. But
>Robert's mentioned that Euphoria's internal model isn't based on a
>FORTH-like data stack.
>
>2. Euphoria already in-line compiles code. Robert's hinted that, where
>possible, Euphoria generates real assembly instructions, not just calls to
>routines. The technique is nothing new (JIT compilers do it all the time).
>This is apparently one of the reasons why declaring variables as integers
>gets such a massive speedup.
>
>3. A lot of operations can't be optimized by the compiler - for example,
>working with sequences. If you do something like:
>
>    s1 &= s2
>
>it's going to make a call to the sequence engine, which is *already*
>compiled. The best that a compiler is going to do is get rid of some of the
>glue around the call to that routine.
>
>If people want to continue believing that a compiler will magically make
>Euphoria massively faster, they can continue that fantasy. But  I've yet to
>encounter an good explanation as to why this would be the case.
>
>There are a number of cases where I can see speed improvements to Euphoria,
>but they don't involve compilers:
>
>1. More optimizations to the sequence engine. On more than one occasion,
>Robert has admitted that certain expensive operations had fixes sitting on
>his 'to do' list.
>
>2. Self-tuning code, along the lines of Transmeta's code morphing
>
>         (http://www.arstechnica.com/cpu/1q00/crusoe/crusoe-1.html),
>
>    or HP's Dynamo
>
>         (http://www.arstechnica.com/reviews/1q00/dynamo/dynamo-1.html).
>
>-- David Cuny

No man that's wrong.
What "sequence engine"?
A sequence is just an array that can have other elements appended/prepended
to it.
No biggie,I do it with realloc in C all the time.
An array in C can only consist out of one data type right?
To place all different types of variables into a single C array you simply
create an int array, and each integer element points to the location of the
variable it contains in memory,no matter what the size is. Think of it as
poking values into memory,and storing the address in an integer array.
That's it,that's your "sequence engine".
That's how U4IA++ does it,and that's the only fast way.
If you start messing with Doubly linked lists,then your code will be slow.
Just plain old arrays do the trick.

As for Euphoria generating machine code, so what?
I can shove some bytes into memory and stream the IP register aswell,but I
can't compile a Euphoria source file entirely to Machine Code with full
optimisations like for example VC++ in 300.000 lines per second. An
interpretter can never optimise it's Machine Code like a compiler can,
because it takes too damned long to optimise Machine Code.
Look at Java, the "Virtual Machine", just plain slow that's what it is.

I have being told that the only way to write an interpretter that would be
as fast as a compiler,would be by using a real compiler as a back-bone to
produce the machine code,wich would make the start-up speed very slow and
what good is an interpretter if it has to "compile" to machine code
anyways?. It would only not be able to link to library files and produce
DLL's like a compiler can.

You will never write a DLL-based API in Interpretted Euphoria,because you
can't compile into a DLL!
U4IA++ *can* using MingW, so you can write the next 3D API in Euphoria, and
C and VB coders can use it aswell!

EVEN OPERATING SYSTEMS can be written in compiled U4IA++, kick MS in the ass
with your NONCRASHING OS(!!!)

Mike The Spike,
Try creating a .com executable in Interpretted Euphoria.
______________________________________________________
Get Your Private, Free Email at http://www.hotmail.com

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

Search



Quick Links

User menu

Not signed in.

Misc Menu