Re: Haiku and Euphoria
- Posted by jimcbrown (admin) Jan 12, 2014
- 2140 views
I believe a strong case could be made for porting Euphoria to Haiku.
I strongly believe that Euphoria would have great chances of being adopted as the choice language for Haiku's beginner/hobby programmers. Of course, this is not to put down Euphoria's capabilities, which are much more extended.
Moreover, yab has not been developed much lately, and anyway it lacks many features that Euphoria can provide. Bottomline: Euphoria could easily take over.
Wow! This would certainly be interesting.
The real problem is lack of resources. Just getting a normal release out has been slow going. But an interested newbie who wants to take on the task will be able to rely on the support of the other experienced developers and the rest of the community for any help or advice necessary.
A side question: how difficult would it be to add to Euphoria *some* support for the C++ -based Haiku API (at least for the GUI)? The success of Euphoria on Haiku would very much depend on this...
A direct interface with C++ has been accomplished in the past. Very old versions of wxEuphoria did this, before Matt got sick of the pain and went with a hand written C based middle layer. For nix, it was using nm on the shared library to display the C standard mangled names and figuring out the calling convention (how to pass the this pointer around, etc). In principle this isn't too hard, but its something that you have to do over and over and over again.
Also in the past, David Cuny wrote a SWIG module for Euphoria. This is very old and is no longer compatible with modern releases of SWIG, but perhaps someone could take up the task to make a new SWIG module. This should allow for easy auto-generation of C++ headers iirc.
Alternatively, it may make sense to "port" the Haiku specific parts of Euphoria (perhaps just be_callc.c) so the C interface is built with a C++ compiler instead of a C compiler. The goal of this would be to make interfacing with C++ seemless from the open_dll()/define_c_func() perspective. Not sure what level of work is involved, though - but some code changes are likely required.