[GUI] RE: Announce: wxHaskell 0.2
Sven.Panne at informatik.uni-muenchen.de
Wed Sep 17 12:27:48 EDT 2003
[ Removed Haskell list from Cc:, it's becoming a bit wxHaskell specific... ]
Daan Leijen wrote:
>> * You need `-package parsec' for linking wxdirect nowadays.
> Thanks for the hints. I'll look into it for a future version.
> I will not actively support CVS GHC's though -- that will be too much
> work :-)
Well, if you like it or not: You'll have to handle versionitis somehow. The
upcoming GHC 6.2 will need that flag, too.
>> * When HelloWorld terminates, it segfaults in wxVariant()'s
> I am quite sure that this has nothing to do with C vs. C++ :-)
> (I am not linking at all with C++ directly -- instead I am using extern C
> wrappers that are used in a separate dynamic link library with their own
> C++ runtime system. This is just like calling any other systems library.)
No, it is not: A library has no "runtime system", it's usually the startup
code which cares for things like global constructors/destructors, sets up
exception handling, initializes the memory allocator, etc. And you get the
correct startup code for the language you are using (C vs. C++) "under the
hood" when linking your application together. At least that's the story for
*nix systems I'm aware of, I don't have a clue on WinDoze. One of the
problems with wxHaskell currently is that the applications are linked together
(via GHC) with a C compiler, not a C++ one.
> The segfault is really weird though -- it might be that you started
> "main" twice from GHCi (a known bug in wxGTK),
Nope, I used GHC and started the resulting executable directly.
> that your GHC is broken,
The usual "help desk" answer... ;-)
> that you use an old GTK,
I'm on the bleeding edge already, doing regular online updates of my SuSE
> anything really.... :-(
Another suspect is casting: I'm not quite sure what you are doing in the
low-level parts, but I see a lot of casts. The problem is: In C++, casting
is not necessarily value preserving for pointers in the presence of multiple
inheritance (or virtual base classes, IIRC).
>> * The package configuration should include linker flags for
>>the path of libwxc.so, otherwise a non-superuser has to fiddle around
>> with LD_LIBRARY_PATH and the like.
> I am fairly hesitant here -- this means that I need two different package
> description files -- one for binary installs and one for developer installs.
> I'll look into it, but since I am not a real unix wizard, maybe you can
> tell me offline what you exactly need/want.
I was thinking of something like an -rpath option for the linker, so that the
resulting executable would automatically find the dynamic library. BTW, do we
really need a *dynamic* library here?
More information about the GUI