Re: Open Discussion (Euphoria)
- Posted by Robert Craig <rds at RapidEuphoria.com> Nov 26, 2005
- 599 views
Eucoder wrote: > Vincent wrote: “The Public Domain source and C source share virtually > >identical Euphoria coded front-ends. The C version has an extention to > >the front-end to help it interface with the C back-end. The Public > >Domain source has a back-end written completely in Euphoria, while the > >C source has a highly optimized C back-end. Profiling and advanced > >trace facility features have been omitted from the Public Domain > >version. Both versions are 100% compatable and the back-ends execute > >the same exact intermediate language (IL) opcodes. The only difference > >is just exectution speed.” > > Not entirely true, I have had a few projects that run perfectly under the > RDS version of EU, but have errors when running on the public domain version > of EU. And I have seen projects created by others that have also crashed under > the open source version. Here is a perfect example: Download Elliott's > Bass library, and run the “Spectrum.exw” example under the RDS version of EU. > Click the screen of the window to change the spectrum style. As you can see > > it works perfectly. Now run the same example under your own compiled version > > of EU then click the screen, it will crash. That is just one example of how > both versions are not entirely the same. I believe the difference is caused by application programmer error in not choosing the correct calling convention (CDECL vs STDCALL) in his define_c_func()/proc() statements. This issue has come up before on this list. Basically, the programmer has a bug in his Euphoria code, but due to a fluke in the way that Watcom generates machine code, the bug, in most situations, won't cause a crash, as long as you use the exw.exe interpreter (which I build using Watcom), or you build your own PD source interpreter by translating, and compiling with Watcom. Using Borland (or Lcc) exposes the programmer's error. Do you have any other examples? Regards, Rob Craig Rapid Deployment Software http://www.RapidEuphoria.com