Re: 64bit support
- Posted by Critic Mar 03, 2009
- 1086 views
Why would I not mention its performance? I agree that there are some cases where it would be nice to optimize the copy. That's one area we're working on right now. But in general, the performance is pretty good.
Well, I'd like to see some recent benchmarks.
By double vs single indirection, I can only guess that you're talking about the way it uses the symbol table, and object pointers. Could you be more specific?
I think (in C-like code) this is the current implementation:
struct { long length; long fill; long refcount; long* data; } *s; s->data[i] // i-th element, double indirectionIt should be possible to do this instead:
struct { long length; long fill; long refcount; long data[1]; /* trick the compiler: can be more in reality */ } *s; s->data[i] // i-th element, single indirectionI don't know how hard it would be to change this, though. I don't know if it improves the performance, either.
But I don't agree on that being a mantra of Euphoria:
] ] Euphoria is a simple, flexible, and easy-to-learn programming language. It lets you quickly and easily develop programs for Windows, DOS, Linux and FreeBSD.
Well, "simple and easy-to-learn" confirms my point. "Flexibility" is the result of dynamic typing, yet it is not quite flexible enough for complex graph-like data structures.
It's typically pretty easy to see what any piece of euphoria code is doing--from a syntax/language, not algorithmic point of view.
Hm, that is true for assembler too. The algorithmic point of view is IMHO the interesting part of a piece of code. (I don't get your C example here: There is no operator overloading in C.)
I suppose that if you tried to build, for example, a C-style implementation of a graph in euphoria, you'd certainly come to that conclusion. I can't figure out what you mean with respect to reference counting not garbage collecting a graph.
Well, I think I am wrong with the GC aspect: Implementing graphs with a matrix should work. However, reference counting does not work for cyclic structures.
Yes, it's not a tool suitable for every problem (let us know when you find it, please).
Well, IMHO Python and Lua have fewer problems than Euphoria. Lua is quite fast too and may be faster than Euphoria in some benchmarks.
But then, I often wish for Euphoria features when coding in those other languages.
I am interested. Could you please give an example?