[Gambas-user] Windows version..
Benoit Minisini
gambas at ...2...
Sat Jul 19 09:58:27 CEST 2003
Le Samedi 19 Juillet 2003 02:46, Rob a écrit :
> On Friday 18 July 2003 19:45, shannara at ...202... wrote:
> > I am hoping that there is a Windows version of Gambas somewhere in the
> > mix of all this? If so, that would rule.. I've been meaning to port over
> > a few apps & game to linux & mac OSX, w/o using the lame .NET/Mono combo.
>
> I don't think anyone has volunteered to make a Windows component yet. If
> Trolltech provided a GPL version of Qt it would basically be already
> written, but they haven't and it's not.
>
> Someone on the PerlQt mailing list was able to port PerlQt to the
> commercial version of Qt for Windows, but since QtWin isn't GPL'ed he
> couldn't distribute his Windows version in binary form. There is a port of
> the GPL'ed version of Qt to Cygwin, and I suspect porting Gambas to it
> might not be that hard since cygwin implements a lot of the things that
> make Unix Unix and Linux Linux, but making your users download 200MB of
> stuff to run your 10K app is not nice ;)
>
> Better still would be if someone wrote a native Win32 replacement for the
> Qt component, since the GPL has an exception for linking against
> proprietary OS-provided libraries, but that would be an awful lot of work
> and would render projects not easily compilable on both without a
> preprocessor (since you'd be referencing gb.win32 all over the place rather
> than gb.qt.)
It must be more complicated ! In Qt, you have almost every widget you need in
one library. In Win32, you have less widgets, so maybe you must access other
libraries or ActiveX component if you want to display rich text, etc.
>
> On top of that, I gather from some of the issues with Nvidia owners and
> shared object loading that Gambas might be tied in some respects to Unix
> style linking, which would provide an additional challenge for would-be
> windows porters.
What you name "Unix style linking" is the possibility to back-link a shared
library, i.e. to get a symbol of the main program into a loaded shared
library. I don't use that in Gambas, so there will be no linking problem on
Windows.
There is a flaw in the shared library loading implementation of Linux : it
used malloc(). So if a shared library implements its own malloc(), then
everything might unexpectedly crash. Example: the KDE libraries.
The NVidia problem may be their fault, because their libraries does not accept
not to be loaded at first time.
How did I solve the problem ? When the interpreter detects a use of gb.qt or
gb.qt.kde in a project, it restarts itself by asking the loader to preload
these libraries as if they were linked to the interpreter, by using the
LD_PRELOAD environment variable.
I think the gambas interpreter could be ported on any platform. The components
are a worse problem, especially the graphical one. Maybe one day somebody
will make a GTK+ component ? And maybe when this day comes, everybody will
use Linux ;-)
--
Benoit Minisini
mailto:gambas at ...1...
More information about the User
mailing list